DOM = (document.getElementById) ? 1 : 0;
NS4 = (document.layers) ? 1 : 0; 

function getoffsetleft(layer) {
	var value = 0;
	if (DOM) {
		object = document.getElementById(layer);
		value = object.offsetLeft;
		while (object.tagName != "BODY" && object.offsetParent) {
			object = object.offsetParent;
			value += object.offsetLeft;
		}
	} else if (NS4) {
		value = document.layers[layer].pageX;
	} else {	// IE4 IS SIMPLY A BASTARD !!!
		if (document.all["IE4" + layer]) {
			layer = "IE4" + layer;
		}
		object = document.all[layer];
		value = object.offsetLeft;
		while (object.tagName != "BODY") {
			object = object.offsetParent;
			value += object.offsetLeft;
		}
	}
	return (value);
} 

function getoffsettop(layer) {
	var value = 0;
	if (DOM) {
		object = document.getElementById(layer);
		value = object.offsetTop;
		while (object.tagName != "BODY" && object.offsetParent) {
			object = object.offsetParent;
			value += object.offsetTop;
		}
	} else if (NS4) {
		value = document.layers[layer].pageY;
	} else {	// IE4 IS SIMPLY A BASTARD !!!
		if (document.all["IE4" + layer]) {
			layer = "IE4" + layer;
		}
		object = document.all[layer];
		value = object.offsetTop;
		while (object.tagName != "BODY") {
			object = object.offsetParent;
			value += object.offsetTop;
		}
	}
	return (value);
} 
		
var AGN_oErrors = new Array();

function AGN_oErrEmpty() {
  AGN_oErrors.length = 0;
};  

function AGN_oErrAdd(message) {
  AGN_oErrors[AGN_oErrors.length] = ' - ' + message;
};

function AGN_oErrOk() {
  if (AGN_oErrors.length > 0) {
    var eText = AGN_oErrors.join("\n");
    alert("Chyby v zadání:\n\n" + eText);
    return(false);
  } else {
    return (true);
  }
};

function trim(str) {
	if (str) {
  	return str.replace(/^\s*|\s*$/g,"");
  } else {
  	return '';
  }
} 

function checkSearch() {
	var d = document.getElementById('inDemand');
	if (d) {
		if (trim(d.value) == '') {
			alert('Nelze hledat prázdný text');
			return false;
		}
	}
	return true;
}

function DAcheck(checkbox) {	
	if (checkbox.checked) {
		document.getElementById('DAStreet').disabled = false;
		document.getElementById('DACity').disabled = false;
		document.getElementById('DAZIP').disabled = false;
		document.getElementById('DACountry').disabled = false;
		document.getElementById('DAPhone').disabled = false;
		document.getElementById('DAFax').disabled = false;
	} else {
		document.getElementById('DAStreet').disabled = true;
		document.getElementById('DACity').disabled = true;
		document.getElementById('DAZIP').disabled = true;
		document.getElementById('DACountry').disabled = true;
		document.getElementById('DAPhone').disabled = true;
		document.getElementById('DAFax').disabled = true;
	}
}

function checkStrength(itemId,suffix) {
	var point = 15;
	var score = 1;
	password = document.getElementById(itemId + suffix).value;
	var minimal = ( password.match(/[a-z]/) ) && ( password.match(/[A-Z]/)) && (password.length > 4);
	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++;
	if (!minimal) score = 1;
	
	document.getElementById("passwordStrengthInner" + suffix).style.width = (30 + point * score ) + "px";
	document.getElementById("passwordStrengthInner" + suffix).innerHTML = (!minimal) ? "Slabé" : score < 5 ? "Rozumné" : "Kvalitní";
	//document.getElementById("registerSubmit" + suffix).disabled = ((score < 3) || password.length < 5 );
	return ((score < 3) || password.length < 5 ) ? 0 : 1;
}

function registerBaseCheck() {
	noEmpty = new Array('Name','Surname','Email','Password','Password2','Street','City','ZIP','Phone','Company','ICO');
	noEmptyExtended = new Array('DAStreet','DACity','DAZIP','DAPhone');
	if (document.getElementById('DeliveryAddres').checked) {
		noEmpty = noEmpty.concat(noEmptyExtended);
	} else {
		for (var i = 0; i < noEmptyExtended.length; i++) {
			document.getElementById(noEmptyExtended[i]).style.backgroundColor = 'white';
		}
	}
	AGN_oErrEmpty();
	
	emptyError = false;
	for (var i = 0; i < noEmpty.length; i++) {
		var obj = document.getElementById(noEmpty[i]);
		if (trim(obj.value) == '') {
			emptyError = true;
			obj.style.backgroundColor = '#FFFF8A';
		} else {
			obj.style.backgroundColor = 'white';
		}
	}
	if (emptyError) {
		AGN_oErrAdd('Chybí některé povinné položky. Chybějící položky byly zvýrazněny.');
	}
	
	pwd1 = trim(document.getElementById('Password').value);
	pwd2 = trim(document.getElementById('Password2').value);
	readTerms = document.getElementById('readTerms').checked;
	if (checkStrength('Password','') == 0) {
		AGN_oErrAdd('Heslo není dostatečně silné');
	}
	/*if (pwd1.length < 6) {
		AGN_oErrAdd('Heslo nemá dostatečnou délku (nejméně 6 znaků)');
	}*/
	if (pwd1 != pwd2) {
		AGN_oErrAdd('Heslo a jeho potvrzení se neshodují');
	}
	if (readTerms == false) {
		AGN_oErrAdd('Bez souhlasu s licenčními pravidly není možné uživatele zaregistrovat');
	}
	return AGN_oErrOk();
}

function registerBaseCheckShort() {
	noEmpty = new Array('NameS','SurnameS','EmailS','PasswordS','Password2S','StreetS','CityS','ZIPS','PhoneS');
	AGN_oErrEmpty();
	
	emptyError = false;
	for (var i = 0; i < noEmpty.length; i++) {
		var obj = document.getElementById(noEmpty[i]);
		if (trim(obj.value) == '') {
			emptyError = true;
			obj.style.backgroundColor = '#FFFF8A';
		} else {
			obj.style.backgroundColor = 'white';
		}
	}
	if (emptyError) {
		AGN_oErrAdd('Chybí některé povinné položky. Chybějící položky byly zvýrazněny.');
	}
	
	pwd1 = trim(document.getElementById('PasswordS').value);
	pwd2 = trim(document.getElementById('Password2S').value);
	readTerms = document.getElementById('readTermsS').checked;
	if (checkStrength('Password','S') == 0) {
		AGN_oErrAdd('Heslo není dostatečně silné');
	}
	/*if (pwd1.length < 6) {
		AGN_oErrAdd('Heslo nemá dostatečnou délku (nejméně 6 znaků)');
	}*/
	if (pwd1 != pwd2) {
		AGN_oErrAdd('Heslo a jeho potvrzení se neshodují');
	}
	if (readTerms == false) {
		AGN_oErrAdd('Bez souhlasu s licenčními pravidly není možné uživatele zaregistrovat');
	}
	return AGN_oErrOk();
}

function editBaseCheck() {
	noEmpty = new Array('Name','Surname','Email','Street','City','ZIP','Phone','Company','ICO');
	noEmptyExtended = new Array('DAStreet','DACity','DAZIP','DAPhone');
	if (document.getElementById('DeliveryAddres').checked) {
		noEmpty = noEmpty.concat(noEmptyExtended);
	} else {
		for (var i = 0; i < noEmptyExtended.length; i++) {
			document.getElementById(noEmptyExtended[i]).style.backgroundColor = 'white';
		}
	}
	AGN_oErrEmpty();
	
	emptyError = false;
	for (var i = 0; i < noEmpty.length; i++) {
		var obj = document.getElementById(noEmpty[i]);
		if (trim(obj.value) == '') {
			emptyError = true;
			obj.style.backgroundColor = '#FFFF8A';
		} else {
			obj.style.backgroundColor = 'white';
		}
	}
	if (emptyError) {
		AGN_oErrAdd('Chybí některé povinné položky. Chybějící položky byly zvýrazněny.');
	}
	
	return AGN_oErrOk();
}

function checkCreditsOrder(orderOpts) {
	checked = false;
	for (var i = 0; i < orderOpts; i++) {
		if (document.getElementById('creditOpt' + i).checked) {
			return true;
		}
	}
	AGN_oErrEmpty();
	AGN_oErrAdd('Není zvolena žádná varianta.');
	AGN_oErrOk();
	return false;
}

function rechercheCheck() {
	var rName = document.getElementById('rName');
	var rSurname = document.getElementById('rSurname');
	var rEmail = document.getElementById('rEmail');
	var rPhone = document.getElementById('rPhone');
	var rDescription = document.getElementById('rDescription');
	
	AGN_oErrEmpty();
	if (trim(rName.value) + trim(rSurname.value) == '') {
		AGN_oErrAdd('není uvedeno jméno');
	}
	if (trim(rEmail.value) + trim(rPhone.value) == '') {
		AGN_oErrAdd('není uveden žádný kontakt');
	}
	if (trim(rDescription.innerHTML) == '' && trim(rDescription.value) == '') {
		AGN_oErrAdd('prázdný požadavek na rešerši');
	}
	return AGN_oErrOk();
}

function askCheck() {
	var rName = document.getElementById('rName');
	var rSurname = document.getElementById('rSurname');
	var rEmail = document.getElementById('rEmail');
	var rPhone = document.getElementById('rPhone');
	var rDescription = document.getElementById('rDescription');
	
	AGN_oErrEmpty();
	if (trim(rName.value) + trim(rSurname.value) == '') {
		AGN_oErrAdd('není uvedeno jméno');
	}
	if (trim(rEmail.value) + trim(rPhone.value) == '') {
		AGN_oErrAdd('není uvedeno žádný kontakt');
	}
	if (trim(rDescription.innerHTML) == '' && trim(rDescription.value) == '') {
		AGN_oErrAdd('prázdný dotaz');
	}
	return AGN_oErrOk();
}

function keywordsCheckAll(numOf) {
	for (var i = 0; i < numOf; i++) {
		var obj = document.getElementById('kw' + i);
		if (obj) {
			obj.checked = true;
		}
	}
}

function keywordsUncheckAll(numOf) {
	for (var i = 0; i < numOf; i++) {
		var obj = document.getElementById('kw' + i);
		if (obj) {
			obj.checked = false;
		}
	}
}

function keywordsCheckAll2(numOf) {
	for (var i = 0; i < numOf; i++) {
		var obj = document.getElementById('kw2' + i);
		if (obj) {
			obj.checked = true;
		}
	}
}

function keywordsUncheckAll2(numOf) {
	for (var i = 0; i < numOf; i++) {
		var obj = document.getElementById('kw2' + i);
		if (obj) {
			obj.checked = false;
		}
	}
}

function quickPreview(photo) {
	var obj = document.getElementById('quickPreviewWindow');
	if (obj) {
		var image = quickPreviewWindow.document.getElementById('image');
		if (image) {
			image.src = 'slices/preload.gif';
		}
		obj.style.left = getoffsetleft('prev' + photo) - 50;
		obj.style.top = getoffsettop('prev' + photo) - 50;
		obj.style.width = 108;
		obj.style.height = 108;
		obj.style.display = 'block';
		obj.src = 'quickPreview.php?id=' + photo;
	}	
}

function hideQuickPreview() {
	var obj = document.getElementById('quickPreviewWindow');
	if (obj) {
		obj.style.display = 'none';
	}
}

function lbAppendCat() {
	var name = document.getElementById('newCatName');
	var cat = document.getElementById('cat');
	cat.options[cat.options.length] = new Option(name.value,name.value);
}

function showlbMessage(message) {
	document.getElementById('toLightboxContainer').style.display = 'none';
	if (message == 'NOLOGIN') {
		alert('Lighbox mohou používat jen registrovaní uživatelé');
	} else if (message == 'INSERTED') {
		alert('Snímek je vložen do zvoleného lightboxu');
	} else if (message == 'EXISTS') {
		alert('Snímek už je ve zvoleném lightboxu umístěn');
	} 
	var btn = document.getElementById('lbButton');
	var txt = document.getElementById('lbText');
	btn.style.display = 'block';
	txt.style.display = 'none';
}

function switchlbButtonOff() {
	var btn = document.getElementById('lbButton');
	var txt = document.getElementById('lbText');
	btn.style.display = 'none';
	txt.style.display = 'block';
} 

function checkLbCat() {
	switchlbButtonOff();
	return true;
}

function checkLbSubmit() {
	var addr = document.getElementById('email');
	var subj = document.getElementById('subject');
	AGN_oErrEmpty();
	if (trim(addr.value) == '') {
		AGN_oErrAdd('není uveden e-mail');
	}
	if (trim(subj.value) == '') {
		AGN_oErrAdd('zpráva nemá předmět');
	}
	return AGN_oErrOk();
}
		
function toLightboxOpen(photoID,imID,lbID,lbLink) {
	var iniLeft = getoffsetleft('searchContainer');
	var iniTop = getoffsettop('searchImage' + imID);
	document.getElementById('lbID').value = lbID;
	document.getElementById('lbLink').value = lbLink;
	document.getElementById('newCatName').value = '';
	document.getElementById('comment').value = '';
	
	var obj = document.getElementById('toLightboxContainer');
	obj.style.left = (iniLeft) + 'px';
	obj.style.top = (iniTop + 200) + 'px';
	obj.style.display = 'block';
}

function toLightboxClose() {
	var obj = document.getElementById('toLightboxContainer');
	obj.style.display = 'none';
}

function uncheck(checkId) {
	document.getElementById(checkId).checked = false;
}

function submitPayByType(ifCheck1, form1, ifCheck2, form2) {
	if (document.getElementById(ifCheck1).checked) {
	 	document.getElementById(form1).submit();
	} else if (document.getElementById(ifCheck2).checked) {
	 	document.getElementById(form2).submit();
	}
}

function selectorSwitch() {
	var a = selectorSwitch.arguments;
	for (var i = 0; i < a.length; i = i + 3) {
		if (a[i] == 'style') {
		 document.getElementById(a[i+1]).className = a[i+2];
		} else if (a[i] == 'display') {
		 document.getElementById(a[i+1]).style.display = a[i+2];
		}
	}
}

var req;
var First = 0;

function processReqChange() {
}

function randomizeRequest(request) {
	return request + (request.search(/\?/) == -1 ? '?rnd=' : '&rnd=') + Math.round(Math.random()*100000);
}

function AJAXget(url,getValue) {
	dataRequest = randomizeRequest(url);
	req = false;
  if(window.XMLHttpRequest) {
  	try {
		req = new XMLHttpRequest();
      } catch(e) {
		req = false;
      }
  } else if(window.ActiveXObject) {
     	try {
      	req = new ActiveXObject("Msxml2.XMLHTTP");
    	} catch(e) {
      	try {
        		req = new ActiveXObject("Microsoft.XMLHTTP");
      	} catch(e) {
        		req = false;
      	}
		}
  }
	if(req) {
		req.onreadystatechange = processReqChange;
		req.open("GET", url, false);
		req.send("");
	}

	if (First == 0) {
		 //alert(url + ' - ' + req.responseText);
	}
	First++;
	var resultText = req.responseText;
	resultParts = resultText.split('[' + getValue+ ']');
	return resultParts[1];
}

function downloadState(SID) {
	//size = AJAXget("http://fotobanka.samphotostock.cz/downloads/getDownloadState.php?SID=" + SID, "size");
	size = AJAXget("http://samphotostock1.cz/downloads/getDownloadState.php?SID=" + SID, "size");
	if (size == "Hotovo") {
		size = '<b>Snímek je připraven ke stažení</b>';
		clearTimeout(dlTimer);
		var im = document.getElementById('downloadFinisher');
		im.style.width = '30px';
		im.style.height = '30px';
	} else if (size == "DlProblem") {
		size = '<b>Vyskytl se problém s download serverem. Na řešení již pracujeme, budeme Vás neprodleně kontaktovat.</b>'; 
	} else {
		dlTimer = setTimeout("downloadState('" + SID + "')",1000);
	}
	document.getElementById("downloadSlider").innerHTML = size;
}

function similarResize(id) {
	var im = document.getElementById(id);
	var image = new Image();
	image.src = im.src;
	aWidth = image.width;
	aHeight = image.height;
	if (aWidth == 0 || aHeight == 0) {
		aWidth = photo.width;
		aHeight = photo.height;
	}

	if (aWidth > aHeight) {
		im.style.height = Math.round(aHeight * 80 / aWidth);
		im.style.width = 80;
	} else {
		im.style.width = Math.round(aWidth * 80 / aHeight);
		im.style.height = 80;
	}
	im.style.display = 'inline';
}

function getSimilars(ID) {
	url = 'getSimilars.php?ID=' + ID + '&r=' + Math.round(Math.random()*10000);
	dataRequest = randomizeRequest(url);
	req = false;
  if(window.XMLHttpRequest) {
  	try {
		req = new XMLHttpRequest();
      } catch(e) {
		req = false;
      }
  } else if(window.ActiveXObject) {
     	try {
      	req = new ActiveXObject("Msxml2.XMLHTTP");
    	} catch(e) {
      	try {
        		req = new ActiveXObject("Microsoft.XMLHTTP");
      	} catch(e) {
        		req = false;
      	}
		}
  }
	if(req) {
		req.onreadystatechange = processReqChange;
		req.open("GET", url, false);
		req.send("");
	}

	eval(req.responseText);
	if (simPhotos.length == 0) {
		out = '<p>Nebyly nalezeny podobné fotografie</p>';
	} else {
		out = '';
		for (var i = 0; i < simPhotos.length; i++) {
			var im = new Image();
			im.src = "http://samphoto.assetsdelivery.com/thumbnails/' + simPhotos[i][2] + '/' + simPhotos[i][3] + '/' + simPhotos[i][1] + '.jpg?r=' + Math.round(Math.random()*100000) + '";
//			out = out + '<div class="simIm"><a href="index.php?action=detail&amp;id=' + simPhotos[i][0] + '"><img alt="' + simPhotos[i][1] + '" src="http://samphoto.assetsdelivery.com/thumbnails/' + simPhotos[i][2] + '/' + simPhotos[i][3] + '/' + simPhotos[i][1] + '.jpg?r=' + Math.round(Math.random()*100000) + '" onload="similarResize(\'simImage' + i + '\')" id="simImage' + i + '" style="display:none" border="0" valign="bottom"></a></div>';
			out = out + '<div class="simIm"><a href="index.php?action=detail&amp;id=' + simPhotos[i][0] + '"><img alt="' + simPhotos[i][1] + '" src="' + simPhotos[i][4] + '" onload="similarResize(\'simImage' + i + '\')" id="simImage' + i + '" style="display:none" border="0" valign="bottom"></a></div>';
		}
		out = out + '<div class="clearspacer"></div><a href="index.php?action=search&amp;inDemand=similar:' + ID + '"><img src="slices/similar.jpg" alt="Podobné..." border="0"> zobrazit více podobných fotografií</a><div class="clearspacer"></div>';
	}
	document.getElementById('similarPhotos').style.background = 'white';
	document.getElementById('similarPhotos').style.height = 'auto';
	document.getElementById('similarPhotos').innerHTML = out;
}

function AJAXgetFull(url) {
	dataRequest = randomizeRequest(url);
	req = false;
  if(window.XMLHttpRequest) {
  	try {
		req = new XMLHttpRequest();
      } catch(e) {
		req = false;
      }
  } else if(window.ActiveXObject) {
     	try {
      	req = new ActiveXObject("Msxml2.XMLHTTP");
    	} catch(e) {
      	try {
        		req = new ActiveXObject("Microsoft.XMLHTTP");
      	} catch(e) {
        		req = false;
      	}
		}
  }
	if(req) {
		req.onreadystatechange = processReqChange;
		req.open("GET", url, false);
		req.send("");
	}

  return req.responseText;
}

function searchSimilar(imageID) {
  if (similarsPrepared) {
    simKeywordsBlock = similarsPrepared;
  } else {
    eval(AJAXgetFull('getSimilars2.php?imageID=' + imageID + '&r=' + Math.round(Math.random()*10000)));
  }
  showSimilars();
}

function hideBlockPopup() {
	document.getElementById('blockPopup').style.display = 'none';
	document.getElementById('grayBg').style.display = 'none';
}

function winH() {
   if (window.innerHeight)
      /* NN4 a kompatibilní prohlížeče */
      return window.innerHeight;
   else if
   (document.documentElement &&
   document.documentElement.clientHeight)
      /* MSIE6 v std. režimu - Opera a Mozilla
      již uspěly s window.innerHeight */
      return document.documentElement.clientHeight;
   else if
   (document.body && document.body.clientHeight)
      /* starší MSIE + MSIE6 v quirk režimu */
      return document.body.clientHeight;
   else
      return null;
}

function winW() {
   if (window.innerWidth)
      /* NN4 a kompatibilní prohlížeče */
      return window.innerWidth;
   else if
   (document.documentElement &&
   document.documentElement.clientWidth)
      /* MSIE6 v std. režimu - Opera a Mozilla
      již uspěly s window.innerHeight */
      return document.documentElement.clientWidth;
   else if
   (document.body && document.body.clientWidth)
      /* starší MSIE + MSIE6 v quirk režimu */
      return document.body.clientWidth;
   else
      return null;
}

function scLeft() {
	return window.pageXOffset ? window.pageXOffset : (
			document.documentElement ? document.documentElement.scrollLeft : (
			document.body ? document.body.scrollLeft : 0));
}

function scTop() {
	return window.pageYOffset ? window.pageYOffset : (
		document.documentElement.scrollTop ? document.documentElement.scrollTop : (
		document.body.scrollTop ? document.body.scrollTop : 0));

}

function docH() {
	var D = document;
	return Math.max(
			Math.max(D.body.scrollHeight, D.documentElement.scrollHeight),
			Math.max(D.body.offsetHeight, D.documentElement.offsetHeight),
			Math.max(D.body.clientHeight, D.documentElement.clientHeight)
	);
}

function docW() {
	var D = document;
	return Math.max(
			Math.max(D.body.scrollWidth, D.documentElement.scrollWidth),
			Math.max(D.body.offsetWidth, D.documentElement.offsetWidth),
			Math.max(D.body.clientWidth, D.documentElement.clientWidth)
	);
}

function showSimilars() {
	var bp = document.getElementById('blockPopup');
	document.getElementById('blockPopupInner').innerHTML = simKeywordsBlock;
	var gb = document.getElementById('grayBg');
	dH = docH();
	dW = docW();
	wH = winH();
	wW = winW();
	sL = scLeft();
	sT = scTop();
	gb.style.width = dW + 'px';
	gb.style.height = dH + 'px';
	bp.style.left = (Math.round((wW - 503) / 2) + sL) + 'px';
	//bp.style.top = (Math.round((wH - 369) / 2) + sT) + 'px';
 	bp.style.top = sT > 150 ? (100 + sT) + 'px' : (150 + sT) + 'px';
	bp.style.display = 'block';
	gb.style.display = 'block';
}

function ungray() {
  obj = document.getElementById('inDemand');
  obj.className = 'input';
  obj.value = '';
  obj.onfocus = function() {};
}




