// JQuery dependent 
var loadingImage = 'loading_31x31.gif';		
var gReferPhoto;
var gReferBook;
var gReferSlides;
// cmp. showLightbox!
var txtIntro_us = "Thank you for sharing<br><span style=\"font-weight:bold;letter-spacing:0.1em;\">another<span style=\"color:#f00\">IMAGE</span></span> with a friend !<br>&nbsp;<br><span style=\"font-size:0.9em;\">You will preview your message.<br>You may cc yourself.</span>";
var txtIntro_nor = "Takk for at du vil dele<br><span style=\"font-weight:bold;letter-spacing:0.1em;\">another<span style=\"color:#f00\">IMAGE</span></span> med noen !<br>&nbsp;<br><span style=\"font-size:0.9em;\">Du får se meldingen før du sender den.<br>Du kan sende en kopi til deg selv.</span>";
var txtNotes_us = "Wow, I thought you might be interested in this web.\nLots of nice photography!";
var txtNotes_nor = "Hei, dette er unikt - dette er interessant.\nMasse flott fotografi!";
var txtNotesPhoto_us = "Wow, I thought you might be interested in this picture.\nLots of nice photography on this web!";
var txtNotesPhoto_nor = "Hei, jeg fant dette bildet på anotherIMAGE.COM.\nHer er det masse flott fotografi!";
var txtNotesBook_us = "Wow, I thought you might be interested in this Web Flash Book.\nLots of nice photography on this web!";
var txtNotesBook_nor = "Hei, jeg fant denne Flash-boka på anotherIMAGE.COM.\nHer er det masse flott fotografi!";
var txtNotesSlides_us = "Wow, I thought you might be interested in this slideshow.\nLots of nice photography on this web!";
var txtNotesSlides_nor = "Hei, jeg fant disse lysbildene med lyd på anotherIMAGE.COM.\nHer er det masse flott fotografi!";
var txtPreview_us = "Below is a preview of your message:"
var txtPreview_nor = "Her er din melding:"
var errEmpty_us = "Please fill in"
var errEmpty_nor = "Vennligst fyll ut"
var errEmailNotValid_us = "Please specify a valid email address"
var errEmailNotValid_nor = "Dette er ikke en gyldig epost adresse"

function setNotes (lang) {
	var notes;
	switch (lang) {
		case "nor":
			if (gReferPhoto) {
				notes = txtNotesPhoto_nor
			} else if (gReferBook) {
				notes = txtNotesBook_nor
			} else if (gReferSlides) {
				notes = txtNotesSlides_nor
			} else {
				notes = txtNotes_nor
			}
		break;
		case "us":
			if (gReferPhoto) {
				notes = txtNotesPhoto_us
			} else if (gReferBook) {
				notes = txtNotesBook_us
			} else if (gReferSlides) {
				notes = txtNotesSlides_us
			} else {
				notes = txtNotes_us
			}
		break;
		default:
		notes = txtNotes_us
	}
	document.getElementById("NOTES").value = notes;
}
function pause(numberMillis) {
// Pauses code execution for specified time. Uses busy code, not good.
// Code from http://www.faqts.com/knowledge_base/view.phtml/aid/1602
	var now = new Date();
	var exitTime = now.getTime() + numberMillis;
	while (true) {
		now = new Date();
		if (now.getTime() > exitTime)
			return;
	}
}
function charCounter(field, maxlimit) {
	if (field.value.length > maxlimit) {
		field.value = field.value.substring(0, maxlimit);	// if too long...trim it!
		document.getElementById("taf_8").style.color = "#f00"; // warn
	} else {
		document.getElementById("taf_8").style.color = "#fff"
	}
	document.getElementById("numchars").innerHTML = maxlimit - field.value.length;
}
function showHideElements (show) {
	//if (navigator.platform.indexOf("Win")!=-1 && (navigator.userAgent.indexOf("Firefox")!=-1 || navigator.userAgent.indexOf("MSIE")!=-1 || navigator.userAgent.indexOf("Chrome")!=-1)){
	//if (navigator.platform.indexOf("Win")!=-1){
		var hideShow = (show) ? "visible" : "hidden";
		var selects = document.getElementsByTagName("select");	// Hide select boxes as they will 'peek' through the image in IE
		for (i = 0; i != selects.length; i++) {
				selects[i].style.visibility = hideShow;
		}
		var embeds = document.getElementsByTagName('embed');
		for(i = 0; i < embeds.length; i++) {
		embeds[i].style.visibility = hideShow;
		}
		var objects = document.getElementsByTagName('object');
		for(i = 0; i < objects.length; i++) {
		objects[i].style.visibility = hideShow;
		}
		//document.getElementById("fbContainer").style.visibility = hideShow;
	//}
}
function showResult (msg) {
	document.getElementById('preview').style.display = "none";
	document.getElementById('contain').style.display = "none";
	document.getElementById('result').style.display = "block";	
	document.getElementById('result').innerHTML = msg;
}
function showPreview (sBody) {
	//document.getElementById("lightbox").className = "preview";
	document.getElementById("lightbox").style.width = "800px";
	document.getElementById("lightbox").style.left = getPageSize()[0]/2 - 400 + "px";
	document.getElementById("contain").style.display="none";
	document.getElementById("preview").style.display="block";
	//alert("sBody: " + sBody) - confirmed
	document.getElementById("previewbody").innerHTML = sBody;
}
function showContain (show) {
	if(!show) document.getElementById("lightbox").style.display="none";
	document.getElementById("lightbox").style.width = "400px";
	document.getElementById("lightbox").style.left = getPageSize()[0]/2 - 200 + "px";
	document.getElementById("preview").style.display="none";
	document.getElementById("result").style.display="none";
	if (document.getElementById("contain").style.display!="block") document.getElementById("contain").style.display="block";
}
function fillRefer () {
	// Parameters when gReferPhoto: 
	// arguments[0]: complete path of full-size image, "book" or "slides" if not photo
	// arguments[1]: document.location.pathname (this url)
	// arguments[2]: pic title
	// arguments[3]: thumb url to show in dialog 
	// arguments[4]: $ separated string which holds all mainpic URLs on this page (to find the actual index on page (?pic=x))
	// var referPhoto;
	if (arguments.length > 0) {
		var linkNo;
		//alert("0=" + arguments[0] + ", 1=" + arguments[1] + ", 2=" + arguments[2] + ", 3=" + arguments[3] + ", 4=" + arguments[4])
		var picUrl = arguments[0];		// link to this fullsize image, "book" or "slides" if not photo
		if(picUrl == "book") {
			gReferBook = true;
			linkNo = 0
		} else if (picUrl == "slides") {
			gReferSlides = true;
			linkNo = 0;
		} else {
			gReferPhoto = true;
			var arrLinkNos = arguments[4].split("$");		//links to all fullsize images
			for(var i=0;i<arrLinkNos.length;i++){
				if (arrLinkNos[i] == picUrl) {
					linkNo = i + 1
				}
			}
		}
		document.getElementById("picurl").value = picUrl;
		document.getElementById("picpath").value = arguments[1];	// link to this page
		document.getElementById("pictitle").value = arguments[2];	// picture title
		document.getElementById("thumbpath").value = arguments[3];	// link to actual thumb picture
		document.getElementById("piclinkno").value = linkNo;
		document.getElementById("langabb").value = getLang();
		// cmp. txtIntro_us and txtIntro_no at top!
		document.getElementById("picthumb").innerHTML = "<img src=\"" + arguments[3] + "\" alt=\"" + arguments[2] + "\">"
		if (getLang() == "us") {
			document.getElementById("taf_1").innerHTML = "Thank you for sharing <br /><span style=\"color:#f30;\">\"" + arguments[2] + "\"</span><br />with a friend !<br>&nbsp;<br><span style=\"font-size:0.9em;\">You will preview your message.<br>You may cc yourself.</span>"
			setCommonReferStrings("us");
		} else {
			document.getElementById("taf_1").innerHTML = "Takk for at du vil dele <br /><span style=\"color:#f30;\">\"" + arguments[2] + "\"</span><br />med noen !<br>&nbsp;<br><span style=\"font-size:0.9em;\">Du får se meldingen før du sender den.<br>Du kan sende en kopi til deg selv.</span>"
			setCommonReferStrings("nor");
		}
		document.getElementById("previewbuttons_top").style.display = "inline"
	} else {
		document.getElementById("picurl").value = "";
		document.getElementById("picpath").value = "";
		document.getElementById("thumbpath").value = "";
		document.getElementById("pictitle").value = "";
		document.getElementById("piclinkno").value = "";
		document.getElementById("previewbuttons_top").style.display = "none"
	}
	setNotes(getLang())
}

function initLightbox(level) {
	
	var sRefer = "<div id=\"result\">MESSAGE<br>SENT!</div>"
	sRefer += "<div id=\"preview\">"
	sRefer += "<img id=\"pictdelete_top\" onclick=\"hideRefer();\" title=\"close this window\" src=\"images/delete_32.png\" />"
	sRefer += "<div id=\"previewhead\"><div id=\"previewhead_txt\">" + txtPreview_us + "</div>"
	sRefer += "<div id=\"previewbuttons_top\"><input id=\"preview_edit_top\" class=\"btn\" style=\"width:150px;\" type=\"button\" name=\"cmdEdit\" value=\"&lt;&lt;&nbsp;Edit message\" onclick=\"showContain(true);\">"
	sRefer += "<input id=\"preview_submit_top\" class=\"btn\" style=\"width:150px;font-weight:bold;\" type=\"button\" name=\"cmdSubmit\" value=\"Send message&nbsp;&gt;&gt;\" onclick=\"sendRefFromPreview(document.frmSendRef," + level + ");\"></div>"
	sRefer += "</div>"	// end previewhead
	sRefer += "<div id=\"previewbody\"></div>"
	sRefer += "<div id=\"previewbuttons\"><input id=\"preview_edit\" class=\"btn\" style=\"width:175px;float:left;\" type=\"button\" name=\"cmdEdit\" value=\"&lt;&lt;&nbsp;Edit message\" onclick=\"showContain(true);\">"
	sRefer += "<input id=\"preview_submit\" class=\"btn\" style=\"width:200px;font-weight:bold;float:right;\" type=\"button\" name=\"cmdSubmit\" value=\"Send message&nbsp;&gt;&gt;\" onclick=\"sendRefFromPreview(document.frmSendRef," + level + ");\"></div>"
	sRefer += "</div>"	// end preview
	
	sRefer += "<div id=\"contain\">"
	sRefer += "<div id=\"containhead\"><div id=\"picthumb\"><img src=\"images/sign_TE_100x84.png\" width=\"100\" height=\"84\" alt=\"Terje Enge\"></div>"
	sRefer += "<img id=\"pictdelete\" onclick=\"hideRefer();\" title=\"close this window\" src=\"images/delete_32.png\" />"
	sRefer += "<div id=\"taf_1\" >" + txtIntro_us + "</div></div>"
	// action and onsubmit necessary due to to Safari. Check test on enter in textarea in submitSendRef, was onkeydown=\"submitSendRef(event)\" 
	sRefer += "<div id='tblcontain'><form action=\"ajax_sendRefer.asp\" method=\"post\" name=\"frmSendRef\" id=\"frmSendRef\" onsubmit=\"ValidateSendRef(document.frmSendRef, document.getElementById('FROM_NAME'), document.getElementById('FROM_EMAIL'), document.getElementById('TO_NAME'), document.getElementById('TO_EMAIL'), 'preview');return false;\">"		// Skip enter - will trigger in textarea!
	sRefer += "<table style=\"margin:0;padding:0;\" width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"2\">"
	sRefer += "<tr><td align=\"left\" valign=\"top\" nowrap><p id=\"taf_2\">your name:</p></td><td align=\"right\"><input type=\"text\" name=\"FROM_NAME\" id=\"FROM_NAME\" size=\"30\" border=\"0\"></td></tr>"
	sRefer += "<tr><td align=\"left\" valign=\"top\" nowrap><p id=\"taf_3\">your email:</p></td><td align=\"right\"><input type=\"text\" name=\"FROM_EMAIL\" id=\"FROM_EMAIL\" size=\"30\" border=\"0\"></td></tr>"
	sRefer += "<tr><td colspan=\"2\">&nbsp;</td></tr>"
	sRefer += "<tr><td align=\"left\" valign=\"top\" nowrap><p id=\"taf_4\">friends name:</p></td><td align=\"right\"><input type=\"text\" name=\"TO_NAME\" id=\"TO_NAME\" size=\"30\" border=\"0\"></td></tr>"
	sRefer += "<tr><td align=\"left\" valign=\"top\" nowrap><p id=\"taf_5\">friends email:</p></td><td align=\"right\"><input type=\"text\" name=\"TO_EMAIL\" id=\"TO_EMAIL\" size=\"30\" border=\"0\"></td></tr>"
	sRefer += "<tr><td colspan=\"2\">&nbsp;</td></tr>"
	sRefer += "<tr><td align=\"left\" valign=\"top\" nowrap><p id=\"taf_6\">your message:<br>(max. 400 chars)</p><p id=\"taf_8\" style=\"margin-top:100px;\">#chars left = <span id=\"numchars\"></span></p></td><td align=\"right\"><textarea name=\"NOTES\" id=\"NOTES\" rows=\"6\" cols=\"28\" wrap=\"hard\" style=\"height:160px;\" onkeyup=\"charCounter(this, 400)\">" + txtNotes_us + "</textarea></td></tr>"
	sRefer += "<tr><td></td><td align=\"right\"><table style=\"margin:0;padding:0;\" width=\"205px\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td align=\"left\"><span id=\"taf_7\">cc yourself:</span></td><td align=\"right\"><input type=\"checkbox\" checked class=\"check\" name=\"CC\" id=\"CC\" value=\"ON\"></td></tr></table></td></tr>"
	sRefer += "<tr><td colspan=\"2\">&nbsp;<input type=\"hidden\" name=\"langabb\" id=\"langabb\">"
	sRefer += "<input type=\"hidden\" name=\"picurl\" id=\"picurl\">"
	sRefer += "<input type=\"hidden\" name=\"pictitle\" id=\"pictitle\">"
	sRefer += "<input type=\"hidden\" name=\"picpath\" id=\"picpath\">"
	sRefer += "<input type=\"hidden\" name=\"thumbpath\" id=\"thumbpath\">"
	sRefer += "<input type=\"hidden\" name=\"piclinkno\" id=\"piclinkno\">"
	sRefer += "<input type=\"hidden\" name=\"task\" id=\"task\" value=\"send\">"
	sRefer += "</td></tr>"
	sRefer += "<tr><td align=\"left\"><input id=\"taf_cancel\" class=\"btn\" style=\"width:75px;\" type=\"button\" name=\"cmdCancel\" value=\"Cancel\" onclick=\"hideRefer();\"></td>"
	sRefer += "<td align=\"right\"><input id=\"taf_preview\" class=\"btn\" style=\"width:250px;font-weight:bold;\" type=\"button\" name=\"cmdPreview\" value=\"Preview & Send\" onclick=\"return ValidateSendRef(document.frmSendRef, document.getElementById('FROM_NAME'), document.getElementById('FROM_EMAIL'), document.getElementById('TO_NAME'), document.getElementById('TO_EMAIL'), 'preview'," + level + ");\"></td></tr>"
	sRefer += "<tr><td colspan=\"2\" align=\"center\"><p id=\"taf_privacy\">Your privacy is respected: No email adresses will be stored or used.</p></td></tr></table></form></div></div>"

	document.getElementById("lightbox").innerHTML = sRefer;

	$("#refer").click(function(){
		hideAll();
		showContain(false);
		$("#lightbox").css({
        top:	getPageScroll()[1] + (getPageSize()[3]/12),	
        left:	getPageSize()[0]/2 - 200
      }).slideToggle(600);
		showHideElements(false);
		document.getElementById("FROM_NAME").focus();
		listenKey();	// Check for 'esc' keypress
		toggleRefer();
		return false;
	});

}
function sendRefFromPreview (form, level) {
	document.forms["frmSendRef"].elements["task"].value = "send";
	requestSendRefer_1(form, "send", level);
}
function ValidateSendRef(form, fld1, fld2, fld3, fld4, task, level) {  
	var s1=trim(fld1.value);	// my name	
	var s2=trim(fld2.value);	// my email
	var s3=trim(fld3.value);	// friends name
	var s4=trim(fld4.value);	// friends email
	if (isNotEmpty(fld1)) { 
		if (isNotEmpty(fld2)) { 
			if (isEMailAddr(fld2)) {
				if (isNotEmpty(fld3)) { 
					if (isNotEmpty(fld4)) {
						if (isEMailAddr(fld4)) {
							document.forms["frmSendRef"].elements["task"].value = task;
							requestSendRefer_1(form, task, level);
						}
					}
				}
	    	}
		} 
  	}
	return false
}

// validates that the field value string has one or more characters in it and does not match any preset string
function isNotEmpty(elem) {
	var str = elem.value;
    var re = /.+/;
    if(!str.match(re)) {
        var errMsg = (getLang() == "us") ? errEmpty_us : errEmpty_nor;
		setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "', '" + errMsg + "')", 0);
        return false;
    } else {
        return true;
    }
}
// validates that the entry is formatted as an e-mail address
function isEMailAddr(elem) {
	var str = trim(elem.value);
    var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
    if (!str.match(re)) {
        var errMsg = (getLang() == "us") ? errEmailNotValid_us : errEmailNotValid_nor;
		setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "', '" + errMsg + "')", 0);
        return false;
    } else {
        return true;
    }
}
function focusElement(formName, elemName, msg) {
    var elem = document.forms[formName].elements[elemName];
	elem.value = msg;
	elem.focus();
    elem.select();
}
