﻿var Text = new Array({
	'Email':'Zadali jste nesprávný email.',
	'Street':'Chybně vyplněné pole Ulice - fakturační adresa.<br>Pravděpodobně chybí číslo domu.<br><br>Prosím pro jistotu zkontrolujte.',
	'ZipCode':'Uvedli jste neexistující PSČ.<br>Správné PSČ naleznete:<ul style="padding: 0px; margin-bottom: 0px; margin-top: 3px;"><li>Česká republika: <a href="http://psc.cpost.cz" target="_blank">www.cpost.cz</a></li><li>Slovensko: <a href="http://psc.posta.sk/" target="_blank">www.posta.sk</a></li></ul>',
	'Phone':'Špatně vyplněné pole Telefon. Uveďte tel. číslo ve formatu +42X123456789.',
	'Ico':'Špatně vyplněné pole Ičo.<br><b>Ičo je nekotrektní.</b>',
	'Captcha':'Zadali jste nesprávný ověřovací kód',
	'Name':'Prosím zadejte Vaše jméno',
	'StreetEmpty':'Prosím zadejte ulici',
	'CityEmpty':'Prosím zadejte město,',
	'ZipCodeEmpty':'Prosím zadejte PSČ',
	'Password':'Zadaná hesla nesouhlasí'
	});
var Delka = new Array({
	'1':'1',
	'2':'1.25',
	'3':'2',
	'4':'2.3',
	'5':'2.5',
	'6':'2.7',
	'7':'3',
	'8':'3.5',
	'9':'6'		
});
var IsCorrectLogin = 1;
var item;

function $(id) {
	return top.document.getElementById(id);
}

var getElemsByRel = function(rel){
    aElements = document.getElementsByTagName("a");
    relElems = [];
    for (i = 0; i < aElements.length; i++) {
        if (aElements[i].hasAttribute("rel") && aElements[i].rel == rel) {
            relElems.append(aElements[i]);
        }
    }
	return relElems;
}

function ShowDialog(type){
	if($('Modal'))HideModal();
	var w = 180;
	var h = 60;
	var scrollTop = document.body.scrollTop ? document.body.scrollTop:document.documentElement.scrollTop;
	var scrollLeft = document.body.scrollLeft ? document.body.scrollLeft:document.documentElement.scrollLeft;
	var top = ((winH()/2)-(h/2)) + scrollTop;
	var left = ((winW()/2)-(w/2)) + scrollLeft;
	var body = document.getElementsByTagName("body")[0];
	var div = document.createElement("div");
	var divSheet = document.createElement("div");
	divSheet.className  = 'Modal-dialog-bg';
	divSheet.setAttribute('id','Modal-bg');
	div.innerHTML = Text[0][type] + '<br><br><br><button onclick="HideModal(0);">ok</button>';
	div.setAttribute('id','Modal');
	div.className  = 'Modal';
	div.style.position = 'absolute';
	div.style.width = w;
	div.style.top = top + 'px';
	div.style.left = left + 'px';
	body.appendChild(divSheet);
	body.appendChild(div);
	document.body.style.overflow='hidden';
	document.body.scroll='no';
}


function ShowDialogText(Text,refresh){
	if($('Modal'))HideModal();
	var w = 180;
	var h = 60;
	var scrollTop = document.body.scrollTop ? document.body.scrollTop:document.documentElement.scrollTop;
	var scrollLeft = document.body.scrollLeft ? document.body.scrollLeft:document.documentElement.scrollLeft;
	var top = ((winH()/2)-(h/2)) + scrollTop;
	var left = ((winW()/2)-(w/2)) + scrollLeft;
	var body = document.getElementsByTagName("body")[0];
	var div = document.createElement("div");
	var divSheet = document.createElement("div");
	divSheet.className  = 'Modal-dialog-bg';
	divSheet.setAttribute('id','Modal-bg');
	div.innerHTML = Text + '<br><br><br><button onclick="HideModal(' + refresh + ');">ok</button>';
	div.setAttribute('id','Modal');
	div.className  = 'Modal';
	div.style.position = 'absolute';
	div.style.width = w;
	div.style.top = top + 'px';
	div.style.left = left + 'px';
	body.appendChild(divSheet);
	body.appendChild(div);
	document.body.style.overflow='hidden';
	document.body.scroll='no';
}
function winW() {
	if (window.innerWidth)
	   return window.innerWidth;
	 else if(document.documentElement &&  document.documentElement.clientWidth)
	    return document.documentElement.clientWidth;
	 else if(document.body && document.body.clientWidth)
	    return document.body.clientWidth;
	 else
	    return null;
}
function winH() {
	if (window.innerHeight)
		return window.innerHeight;
	else if(document.documentElement && document.documentElement.clientHeight)
		return document.documentElement.clientHeight;
	else if(document.body && document.body.clientHeight)
		return document.body.clientHeight;
	else
		return null;
}

function HideModal(refresh){
	var body = document.getElementsByTagName('Body')[0];
	body.removeChild($('Modal-bg'));
	body.removeChild($('Modal'));
	document.body.style.overflow='auto';
	document.body.scroll='yes';
	if(refresh==1){
		top.location.reload();
	}
		
}

function EmailControlEvent(event){
	var target = event.target != null ? event.target : event.srcElement;
	if(target.value == '') { target.style.background = 'white'; return true;}
	return EmailControl(target);
}

function EmailControl(Control){
	if(!RunEmailControl(Control.value)){
		item = Control;
		ShowDialog(Control.name);
		Control.style.background = 'red';
		return true;
	}else{
		Control.style.background = 'white';
		return false;
	}
}

function RunEmailControl(email){
	re = /^[+_a-zA-Z0-9-]+(\.[+_a-zA-Z0-9-]+)*@[\.a-zA-Z0-9-]+\.[a-zA-Z0-9-]{2,4}$/;
	return email.search(re) == 0;
}

function RunPhoneControl(intNum){
	re = /\+[0-9]{12}/;
	return intNum.search(re) == 0;
}

function PhoneControlEvent(event){
	var target = event.target != null ? event.target : event.srcElement;
	if(target.value == '') { target.style.background = 'white'; return true;}
	return PhoneControl(target);
}

function PhoneControl(Control){
	if(!RunPhoneControl(Control.value)){
		item = Control;
		ShowDialog(Control.name);
		Control.style.background = 'red';
		return true;
	}else{
		Control.style.background = 'white';
		return false;
	}
}

function StreetControlEvent(event){
	var target = event.target != null ? event.target : event.srcElement;
	if(target.value == '') { target.style.background = 'white'; return true;}
	return StreetControl(target);
}

function StreetControl(Control){
	if(!RunStreetControl(Control.value)){
		item = Control;
		var a = ShowDialog(Control.name);
		Control.style.background = 'red';
		return true;
	}else{
		Control.style.background = 'white';
		return false;
	}
}
function RunStreetControl(strValue){
	re = /(.*) [0-9](.*)/;
	return strValue.search(re) == 0;
}

function IsNumeric(sText){
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
}

function ControlNumber(event){
	var e= event.charCode? event.charCode : event.keyCode;
	if (e!=8){
		if (e<48||e>57) return false;
	}
	return true;
}

function ICOControl(Control){
  try{
	var x = Control.value;
    var a = 0;
    item = Control;
    if(x.length == 0){ Control.style.background = 'white'; return true;}
    if(x.length != 8) throw 1;
    var b = x.split('');
    var c = 0;
    for(var i = 0; i < 7; i++) a += (parseInt(b[i]) * (8 - i));
    a = a % 11;
    c = 11 - a;
    if(a == 1) c = 0;
    if(a == 0) c = 1;
    if(a == 10) c = 1;
    if(parseInt(b[ 7]) != c) throw(1);
  }
  catch(e)
  {
	  Control.style.background = 'red';
	  ShowDialog('Ico');
    return false;
  }
  Control.style.background = 'white';
  return true;
}

function ControlLogin(Control){
	item = Control;
	if(Control.value.length >= 5){
		var Exist = sendRequest('forms/ExistLogin.php','login=' + Control.value);
		if(Exist == '1'){
			IsCorrectLogin = 1;
			DissableButton(true);
			$('LoginInfo').innerHTML = "Jméno je již použito";
		}else{
			IsCorrectLogin = 0;
			DissableButton(false);
			$('LoginInfo').innerHTML = "";
		}
	}else{
		$('LoginInfo').innerHTML = "Jméno je příliš krátké";
		IsCorrectLogin = 1;
		DissableButton(true);
	}
	
}

function Validate(event){
	if (event == null)
		event = window.event;
	var target = event.target != null ? event.target : event.srcElement;
	switch(target.name){
		case 'Email':return EmailControlEvent(event); break;
		case 'Phone':return PhoneControlEvent(event); break;
		case 'Street':return StreetControlEvent(event); break;
		case 'Ico':return ICOControl(target); break;
	}
}



/* AJAX */

function sendRequest(url,postData) {
	var req = createXMLHTTPObject();
	if (!req) return;
	var method = (postData) ? "POST" : "GET";
	req.open("POST",url,false );
	//req.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
	req.setRequestHeader( 
		    'Content-Type', 
		    'application/x-www-form-urlencoded; charset=UTF-8' 
		); 
	
	/*req.setRequestHeader('User-Agent','XMLHTTP/1.0');*/
	if (postData)
		//req.setRequestHeader('Content-type','application/x-www-form-urlencoded');
		/*req.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
		req.send(postData);*/
		req.send(postData);
		req.onreadystatechange = function () {
		Refresh(req);
		if (req.readyState != 4) return;
		if (req.status != 200 && req.status != 304) {
		//	alert('HTTP error ' + req.status);
			return;
		}
	}
	if (req.readyState == 4) return Refresh(req);
}

function XMLHttpFactories() {
	return [
		function () {return new XMLHttpRequest()},
		function () {return new ActiveXObject("Msxml2.XMLHTTP")},
		function () {return new ActiveXObject("Msxml3.XMLHTTP")},
		function () {return new ActiveXObject("Microsoft.XMLHTTP")}
	];
}

function createXMLHTTPObject() {
	var xmlhttp = false;
	var factories = XMLHttpFactories();
	for (var i=0;i<factories.length;i++) {
		try {
			xmlhttp = factories[i]();
		}
		catch (e) {
			continue;
		}
		break;
	}
	return xmlhttp;
}

function Refresh(req){
	return req.responseText;
}

function passwordStrength(password, shownull,  passTep) {
	var point = 24; 
	var score = 0; 
	var box;

	if (!passTep) passTep = "passwordStrength";

	if ( password.length >= 6) score++; 
	if ( ( password.match(/[a-z]/) ) && ( password.match(/[A-Z]/) ) ) score++; 
	if ( password.match(/\d+/)) score++; 
	if ( password.match(/.[!,@,#,$,%,^,&,*,?,_,~,-,(,)]/) ) score++; 
	if ( password.length > 12) score++; 

	//var box = document.getElementById(passTep).getElementsByTagName("DIV"); box[0].style.left = ( point * score ) + "px";
	if(document.getElementById(passTep)){ 
		box = document.getElementById(passTep).getElementsByTagName("DIV"); 
		box[0].style.left = ( point * score ) + "px";
	}
	
	if ( (password.length >= 6) && ( score > 1 ) && (IsCorrectLogin == 0)) {
		DissableButton(false);
		return 1;
	} else {
		//Pokud je povoleno 0 znaku a heslo ma 0 znaku, button povolujeme
		if ( shownull == 1 && (password.length == 0)) {
			DissableButton(false);
			return 1;
		} else {
			DissableButton(true);
			return 0;
		}
	}
}

function DissableButton(Diss){
	var divName = "Register";
	if(document.getElementById(divName)){
		if (Diss == false) {
			document.getElementById(divName).disabled = false;
			document.getElementById(divName).style.color = "#000000";
			document.getElementById(divName).style.cursor = "pointer";
		} else {
			document.getElementById(divName).disabled = true;
			document.getElementById(divName).style.color = "#999999";
			document.getElementById(divName).style.cursor = "auto";
		}
	}
}

function SendForm(x){
	CaptchaCode = readCookie('Captcha');
	if(x.Kod.value!=CaptchaCode){
		ShowDialog('Captcha');
		RefreshCaptcha();
		x.Kod.value = "";
		x.Kod.focus();
		return false;
	}
	eraseCookie('Captcha');
	return true;
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";

	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	var Val;
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function RefreshCaptcha(){
	eraseCookie('Captcha');
	document.getElementById("captcha").src = "captcha/CaptchaSecurityImages.php?width=100&height=40&characters=5&"+ Math.random();
}

function RunatControlForm(Form){
	if(Form.Firm.value==""){
		ShowDialog('Name');
		Form.Firm.focus();
		return false;
	}
	if(Form.Street.value==""){
		ShowDialog('StreetEmpty');
		Form.Firm.focus();
		return false;
	}
	if(StreetControl(Form.Street)){
		return false;
	}
	if(Form.City.value==""){
		ShowDialog('CityEmpty');
		Form.City.focus();
		return false;
	}
	if(Form.ZipCode.value==""){
		ShowDialog('ZipCodeEmpty');
		Form.ZipCode.focus();
		return false;
	}
	if(Form.pass.value != Form.passCont.value){
		ShowDialog('Password');
		Form.pass.focus();
		return false;
	}
	return SendForm(Form)
}

function AddToCart(id,refresh){
	var Item;
	var Price;
	var OrigItem;
	var Length = GetRadioValue(document.Item.Lenght);
	var Color = GetRadioValue(document.Item.Color);
	var ItemCook = readCookie('Items');
	var PriceCook = readCookie('Price');
	var Ks = document.Item.Ks.value;

	ItemCook = ItemCook != null? ItemCook + '~' : '';
	PriceCook = PriceCook != null?PriceCook + '~': '';
	
	OrigItem = sendRequest('GetItem.php','id=' + id).split(';');
	if(OrigItem[2]=='m')Price = (OrigItem[1] * Delka[0][Length]) * Ks;
	else Price = OrigItem[1] * Ks;
	
	Item = id + '-' + Color + '-' + Length + '-' + Ks
	
	eraseCookie('Items');
	eraseCookie('Price');
	createCookie('Items',ItemCook + Item,1);
	createCookie('Price',PriceCook + Price,1);
	
	top.document.getElementById('CountItem').innerHTML = ItemCook.split('~').length;
	top.document.getElementById('CountPrice').innerHTML = GetArrayCount(PriceCook.split('~')) + Price;
	var AddText = 'Byla přidána položka: <br><b>' + OrigItem[0] + '</b>';
	
	ShowDialogText(AddText,refresh);
	document.Item.reset();
}

function RefreshCart(){
	var PriceCook = readCookie('Price');
	var Price = PriceCook.split('~');
	var NewPrice = 0;
	var NewCoockItem = '';
	var NewCoockPrice = '';
	var f = document.getElementById('FomrCart'); 
	var CookieDone = '';

	for( var i = 0; i < f.elements.length; i++ ) { 
		if(f.elements[i].value !=0){
			CookieDone = f.elements[i].id + f.elements[i].value
			Price = f.elements[i].getAttribute("BasicPrice")
			NewPrice = Price * f.elements[i].value 
			NewCoockItem = NewCoockItem != ''?NewCoockItem + "~" + CookieDone:CookieDone;
			NewCoockPrice = NewCoockPrice != ''?NewCoockPrice + "~" + NewPrice:NewPrice;
		}
	} 
	eraseCookie('Items');
	eraseCookie('Price');
	createCookie('Items',NewCoockItem,1);
	createCookie('Price',NewCoockPrice,1);
	location.reload();
}

function EmptyCart(){
	eraseCookie('Items');
	eraseCookie('Price');
	$('CountItem').innerHTML = 0;
	$('CountPrice').innerHTML = 0;
	location.reload();
}

function GetRadioValue(Type){
if(!Type)return;
for (var i=0; i < Type.length; i++)
   {
   if (Type[i].checked)
      {
      var rad_val = Type[i].value;
      }
   }
	return rad_val
}

function GetArrayCount(Type){
	var Price = 0;
	for (var i=0; i < Type.length; i++){
		//alert(Price + Number(Type[i]));
		Price = Number(Price) + Number(Type[i]);
	}
	
	return Price
}
function printContent(){
	str=document.getElementById("PrintArea").innerHTML;
	var newwin;
	newwin=window.open("", "newwin", "height=250, width=250,toolbar=no,scrollbars=no,menubar=no");
	newwin.document.write('<HTML>\n<HEAD>\n');
	newwin.document.write('<TITLE>Tisk košíku</TITLE>\n');
	newwin.document.write('<script>\n');
	newwin.document.write('function chkstate(){\n');
	newwin.document.write('if(document.readyState=="complete"){\n');
	newwin.document.write('window.close()\n');
	newwin.document.write('}\n');
	newwin.document.write('else{\n');
	newwin.document.write('setTimeout("chkstate()",2000)\n');
	newwin.document.write('}\n');
	newwin.document.write('}\n');
	newwin.document.write('function print_win(){\n');
	newwin.document.write('window.print();\n');
	newwin.document.write('chkstate();\n');
	newwin.document.write('}\n');
	newwin.document.write('<\/script>\n');
	newwin.document.write('</HEAD>\n');
	newwin.document.write('<BODY onload="print_win()">\n');
	newwin.document.write(str);
	newwin.document.write('</BODY>\n');
	newwin.document.write('</HTML>\n');
	newwin.document.close();
}

/* INIT */
window.onload = function(){
	if($('RegForm')){
		//$('RegForm').onsubmit = 'return '
		var items = document.getElementsByTagName("input");
		for (var i=0; i <= (items.length-1); i++){
			items[i].onblur = Validate;
		}
		passwordStrength('',0);
	}
}
