/*
TODO
document.write raus, austauschen gg $(document).ready(function() {...});

Scripts for demosite see scripts/demosite.js

#########################################
Create enlarged images in new window with createZoom(small, large, width, height, title, styles)
Parameters	small	(mandatory)	thumbnail url
large	(mandatory)	full size image url
width	(mandatory)	image width
height	(mandatory)	image height
title	(mandatory) title for new window in which image is displayed
styles	(optional) css for float and margins in case image must float right or not float at all.
(Default = float:left;margin:3px 15px 5px 0px. For different alignment change values; e.g. float:right;margin:3px 0px 5px 15px)
#########################################
*/

var newWin = null;

function errorHandler() {
    // Windows XP SP2 popup blocker
    return true;
}
window.onerror = errorHandler;

function zoom(imgSrc, imgWidth, imgHeight, imgTitle) {
    try {
        var cc = window.event.srcElement; // Windows XP SP2 popup blocker
    } catch (e) { }

    if (newWin != null)
        try { newWin.close(); } catch (e) { }

    var thisImg = new Image();
    thisImg.src = imgSrc;

    var winWidth = imgWidth + 2;
    var winHeight = imgHeight + 2;

    var winLeft = Math.floor((screen.availWidth / 2) - (imgWidth / 2));
    var winTop = Math.floor((screen.availHeight / 2) - (imgHeight / 2));

    var args = "width=" + winWidth + ",height=" + winHeight + ",left=" + winLeft + ",top=" + winTop + ",scrollbars=no,status=no,toolbar=no,dependent=yes,location=no,resizable=no";

    newWin = window.open("", "zoom", args);

    if (newWin == null)
        return;

    newWin.focus();
    newWin.document.write('<html>');
    newWin.document.write('<head>');
    newWin.document.write('<title>' + imgTitle + '</title>');
    newWin.document.write('</head>');
    newWin.document.write('<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" style="text-align:center;">');
    newWin.document.write('<img src="' + imgSrc + '" width="' + imgWidth + '" height="' + imgHeight + '"/>');
    newWin.document.write('</body>');
    newWin.document.write('</html>');
}

function createZoom(small, large, width, height, title, styles) {
    //if (!styles) styles = 'float:left;margin:5px 15px 5px 0px;';
    //document.write('<table title="Zoom" cellpadding="0" cellspacing="0" border="0" style="' + styles + 'cursor:hand;"><tr><td><a href="javascript:zoom(\'' + large + '\', ' + width + ', ' + height + ', \'' + title + '\');"><img src="' + small + '" border="0"></a></td></tr><tr><td align="center"><a class="arr1" href="javascript:zoom(\'' + large + '\', ' + width + ', ' + height + ', \'' + title + '\');void(0);">Zoom</a></td></tr></table>');
    //alert('<div class="zoom" style="' + styles + '"><a href="javascript:zoom(\'' + large + '\', ' + width + ', ' + height + ', \'' + title + '\');"><img src="' + small + '" /></a><br /><a class="arr1" href="javascript:zoom(\'' + large + '\', ' + width + ', ' + height + ', \'' + title + '\');void(0);">Zoom</a></div>');

    document.write('<div class="zoom" style="' + styles + 'cursor:hand;"><a href="javascript:zoom(\'' + large + '\', ' + width + ', ' + height + ', \'' + title + '\');"><img src="' + small + '" /></a><br /><a class="arr1" href="javascript:zoom(\'' + large + '\', ' + width + ', ' + height + ', \'' + title + '\');void(0);">Zoom</a></div>');
   }

/*
#########################################
Toggle element show / hide
090305	UP	Modified (inline => block)
#########################################
*/

function showHideItem(item) {
    (document.getElementById(item).style.display == 'none') ? document.getElementById(item).style.display = 'block' : document.getElementById(item).style.display = 'none';
}


/*
#########################################
Warning box for brochure (de) + (fr)
Created		26.07.05 UP
Modified	12.04.11 UP
Modified	13.01.12 RS	Moved to brochbox.htm and DefaultHandler.cs
(Span element with ID "warning" must exist in the page to display warning box.)
#########################################
*/

function hideWarning() {
	jQuery("#warning").hide();
/*
	if (navigator.appName.indexOf("Opera") != -1) {
		location.reload();
	} else {
		document.getElementById("warning").innerHTML = "";
	}
*/
}

/*
#############################################################
Feedback box default.aspx etc.
Created     21.09.05    UP
Modified    08.01.07    UP
Modified	08.07.11	MS
#############################################################
*/

// detect language

var language = "en";
if(document.location.href.toLowerCase().indexOf("/fr/") >= 0) {
	language = "fr";
} else if(document.location.href.toLowerCase().indexOf("/de/") >= 0) {
	language = "de";
}


var texts = {
	en: {
		emailEmpty: "Without your email address we can\'t answer you. Send anyway?",
		emailWarning: "Please enter a valid<br/>email address!<br/>(user@domainname.domain)",
		commentWarning: "Please enter a comment!",
		thanks: "Thank you!",
		waitOne: "Wait for 1 min before sending the next comment, please!",

		errorSend: "Failed to send feedback.",

	},
	fr: {
		emailEmpty: "Nous ne pouvons pas vous r&eacute;pondre sans votre adresse email. Voulez-vous envoyer votre message quand m&ecirc;me?",
		emailWarning: "SVP saisissez une<br/>adresse email valable!<br/>(user@domainname.domain)",
		commentWarning: "SVP saisissez vos remarques!",
		thanks: "Merci beaucoup!",
		waitOne: "Patientez 1 mn avant d'envoyer la remarque suivante S.V.P.!",
	},
	de: {
		emailEmpty: "Ohne Ihre Email-Adresse k&ouml;nnen wir Ihnen nicht antworten. Trotzdem senden?",
		emailWarning: "Bitte geben Sie eine<br/>g&uuml;ltige Email-Adresse ein!<br/>(user@domainname.domain)",
		commentWarning: "Bitte geben Sie einen Kommentar ein!",
		thanks: "Vielen Dank!",
		waitOne: "Bitte warten Sie 1 min., bevor Sie den n&auml;chsten Kommentar verschicken!",
	}
};

function getText(key) {
	var text = texts[language][key];
	if(text == undefined) {
		text = texts["en"][key];
		if(text == undefined) {
			text = key;
		}
	}

	return text;
}

function sendFeedback() {

	var email = $("#v_fbemail").val();
	var comment = $("#v_fbcomment").val();

	if($("#hints").attr("_emailempty") != "ok") {

		if(email == "") {
			$("#hints").html(getText("emailEmpty")).attr("_emailempty", "ok");
			return;
		}

		if(!isValidEmail(email)) {
			$("#hints").html(getText("emailWarning"));
			return;
		}
	}

	$("#hints").attr("_emailempty", "");		// clear empty mail identicator


	if(!isValidComment(comment)) {
		$("#hints").html(getText("commentWarning"));
		return;
	}


	// send mail

	var subj = "pctopp.com (" + language + ") Feedback (light)";
	var res = com.pctopp.Mail.SendMail(email, subj, comment);

	if(res.value != "true") {
		if(res.value.indexOf("Error 1:") >= 0) {
			$("#hints").html(getText("waitOne"));
		} else {
			$("#hints").html(getText("errorSend"));
		}
	} else {
		$("#hints").html(getText("thanks"));

		setTimeout(resetHints, 5000);

	}
}

function isValidEmail(emailAddress) {
	if(emailAddress == "") {
		return false;
	}

	var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9])+$/;
	var domainlength = 0;

        if (emailAddress.search(filter) == 0) {
		var domainlength = emailAddress.substring(emailAddress.lastIndexOf('.') + 1).length;
		if (domainlength >= 2) {
			return true;
		}
	}

	return false;
}

function isValidComment(comment) {
	if (comment == "") {
		return false;
	}

	if(comment.search(/[a-zA-Z0-9#:;,!"'~_-§%&éèàùçÇêÉÈÀÙôÔâÂîÎÄÜÖäüöß\^\@\|\/\(\)=\?\*\$\.\-\+\*\<\>]/) < 0) {
		return false;
	}

	return true;
}

function resetHints() {
	$("#hints").html("");
}

/*
#############################################################
Season's greetings default.aspx
Created     19.12.05    UP
#############################################################
*/

function ssGrt(lng) {
    var sg_html = '';
    sg_html += '<div class="ssGrt"><img src="/images/holly1.gif" align="middle"/>';
    switch (lng) {
        case 'en':
            sg_html += 'Merry Christmas &amp; A Happy New Year!';
            break;
        case 'fr':
            sg_html += 'Joyeux no&euml;l &amp; bonne ann&eacute;e!';
            break;
        case 'de':
            sg_html += 'Frohe Weihnachten &amp; ein gutes neues Jahr!';
            break;
        default:
            sg_html += 'Merry Christmas &amp; A Happy New Year!';
            break;
    }
    sg_html += '<img src="/images/holly2.gif"  align="middle"/></div>';

    var today = new Date();
    var thisMonth = today.getMonth();
    var thisDate = today.getDate();
    if ((thisMonth == 11 && thisDate > 14) || (thisMonth == 0 && thisDate < 8)) {
        return sg_html;
    } else {
        return '';
    }
}

/*
################################################################
Dialog for visitors from Google AdWords
090310	UP	Created 
090312	MS	switched from cookie to parameter adwords
090313	UP	Modified
111017	UP	Modified layout
120118	RS	Moved to default.htm
################################################################
*/

function detectAdwords() {
	if (document.location.href.indexOf("?adwords") > 0) {
		jQuery().ready(function() {
			jQuery("#googledialogcontainer").find("span.closedialog, a.closedialog").bind("click", hideGoogleBox);
			showGoogleBox();
		});
	}
}

function hideGoogleBox() {
	$("#googledialogcontainer").hide();
	return false;
}

function showGoogleBox() {

        var googleresize;
        var googlePos = Math.round((document.body.clientWidth - 500) / 2).toString() + "px";
        document.onkeydown = googleenter;

	var $googledialog = jQuery("#googledialog");
	$googledialog.css("left", googlePos).css("overflow", "auto");
	// document.getElementById("googledialog").style.left = googlePos;
        // document.getElementById("googledialog").style.overflow = "auto";

        document.getElementById("msggoogle").innerHTML = "";
        document.getElementById("google_").style.display = "block";
        document.getElementById("thanks").style.display = "none";

        // document.getElementById("killcookie").innerHTML = "<img src=\"/more/en.aspx?cmd=xxx&d=" + new Date().getTime() + "\"/>";

        document.getElementById("googledialog").style.display = "block";
        document.getElementById("namegoogle_").focus();

	jQuery("#googledialogcontainer").show();
}

function checkgooglesendstatus() {
    var address = window.location.href.split("/");
    var lang = address[3];
    var msg1google;
    var msg2google;
    var thanksGoogle;
    var subjGoogle;
    var sendgoogle = false;
    var filterGoogle = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9])+$/;
    var filtergoogle2 = /([^0-9\ \+\-\(\)\/])/;
    var emailAddressGoogle = document.getElementById("emailgoogle_").value;
    var phonegoogle = document.getElementById("phonegoogle_").value;
    var domainlengthGoogle = emailAddressGoogle.substring(emailAddressGoogle.lastIndexOf('.') + 1).length;
    switch (lang) {
        case "en":
            msg1google = "Please enter a valid email address!<br/>(user@domainname.domain)";
            msg2google = "Please enter a valid phone number!<br />(Allowed characters:  0-9 + - ( ) /, at least 4 digits)";
            thanksGoogle = "<b>Thank you for your message!</b><br /><br />A copy of your message will be sent to you and we will contact you soon.";
            subjGoogle = "Visitor via Google AdWords (" + lang + ") - Request for More Information";
            break;
        case "fr":
            msg1google = "Veuillez SVP saisir une adresse email valide!<br/>(user@domainname.domain)";
            msg2google = "Veuillez SVP saisir un num&eacute;ro de t&eacute;l&eacute;phone valide!<br />(Charact&eacute;res permis: 0-9 + - ( ) /, au moins 4 chiffres)";
            thanksGoogle = "<b>Merci pour votre message!</b><br /><br />Une copie de votre message vous sera envoy&eacute;e et nous vous contacterons bient&ocirc;t.";
            subjGoogle = "Visiteur via Google AdWords (" + lang + ") - demande pour plus d\'information";
            break;
        case "de":
            msg1google = "Bitte geben Sie eine g&uuml;ltige Email-Adresse ein!<br/>(user@domainname.domain)";
            msg2google = "Bitte geben Sie eine g&uuml;ltige Telefonnummer ein!<br />(Erlaubte Zeichen: 0-9 + - ( ) /, mind. 4 Stellen)";
            thanksGoogle = "<b>Danke f&uuml;r Ihre Nachricht!</b><br /><br />Eine Kopie Ihrer Nachricht wird Ihnen zugeschickt und wir werden uns bald mit Ihnen in Verbindung setzen.";
            subjGoogle = "Besucher via Google AdWords (" + lang + ") - Anfrage wg. mehr Information";
            break;
        default:
            msg1google = "Please enter a valid email address!<br />(user@domainname.domain)";
            msg2google = "Please enter a valid phone number!<br />(Use 0-9 + - ( ) /, at least 4 digits)";
            thanksGoogle = "<b>Thank you for your message!</b><br /><br />A copy of your message will be sent to you and we will contact you soon.";
            subjGoogle = "Visitor via Google AdWords (" + lang + ") - Request for More Information";
            break;
    }
    if (filterGoogle.test(emailAddressGoogle) && domainlengthGoogle >= 2) {
        if (phonegoogle == "") {
            sendgoogle = true;

        } else {
            if (phonegoogle.length >= 4 && filtergoogle2.test(phonegoogle) == false) {
                sendgoogle = true;
            } else {
                sendgoogle = false;
                document.getElementById("msggoogle").innerHTML = msg2google;
                document.getElementById("phonegoogle_").focus();
            }
        }
    } else {
        document.getElementById("msggoogle").innerHTML = msg1google;
        document.getElementById("emailgoogle_").focus();
    }
    if (sendgoogle == true) {
        document.getElementById("msggoogle").innerHTML = "";
        var val = [
			document.forms["google"].elements["namegoogle"].value,
			document.forms["google"].elements["phonegoogle"].value,
			document.forms["google"].elements["plantgoogle"].value,
			document.forms["google"].elements["commentgoogle"].value
		];

        var resGoogle = com.pctopp.Mail.SendMailFromTemplate(document.forms["google"].elements["emailgoogle"].value, subjGoogle, "googledialog", val);

        if (resGoogle.value != "true") {
            alert("Error: " + AjaxPro.toJSON(resGoogle));
        } else {
            window.setTimeout("hidegoogledialog()", 4000);
            document.getElementById("google_").style.display = "none";
            document.getElementById("thanks").innerHTML = thanksGoogle;
            document.getElementById("thanks").style.display = "block";
        }
    }
}

function hidegoogledialog() {
    document.getElementById("googledialog").style.overflow = "hidden";
    googleresize = window.setInterval("resizegoogledialog()", 1);
}

function resizegoogledialog() {
    var googleheight = document.getElementById("googledialog").offsetHeight;
    googleheight = googleheight - 9;
    document.getElementById("googledialog").style.height = googleheight.toString() + "px";
    if (googleheight <= 9) {
        document.getElementById("googledialog").style.display = "none";
        window.clearInterval(googleresize);
    }
}

function googleenter(Event) {
    if (!Event) {
        Event = window.event;
    }
    if (Event.which) {
        googlekeycode = Event.which;
    } else if (Event.keyCode) {
        googlekeycode = Event.keyCode;
    }

    if (googlekeycode == '13') {
        var googlesend = false;
        if (!Event.target) {
            if (Event.srcElement.id != "commentgoogle_")
                googlesend = true;
        } else {
            if (Event.target.id != "commentgoogle_")
                googlesend = true;
        }
        if (googlesend == true) {
            checkgooglesendstatus();
        }
    }
}



/*
################################################################
Left hand side navigation behaviour
Created March 2010  UP
################################################################


$(document).ready(function() {
    $("#left li.subleft").hide();
    $("#left li.act").show();
    $("#left li.act:not(:.topleft)").prevUntil("li.topleft").show();
    $("#left li.act").nextUntil("li.topleft").show();

    $("#left li").bind("click", function() {
        $("#left li").each(function(index) {
            $(this).removeClass("act");
        });
        $(this).addClass("act");
        if ($(this).attr("className").search(/topleft/) != -1) {
            $("#left li.subleft").hide();
        } else {
            void (0);
        }
        $(this).nextUntil("li.topleft").show();
    });
   });

*/
/*
################################################################
Feedback page check and submit (moved to common.js and modified)
Added	09.05.11 UP
################################################################
*/

var defaultmail = "";
function emailOK(language) {

	var clickHere1,
		clickHere2,
		validAddress = "";

	switch (language) {
		case "en":
			clickHere1 = "Click Here";
			clickHere2 = "if you want to give us feedback without disclosing your personal data";
			validAddress = "Please enter a valid e-mail adress (username@domainname.domain)!";
			break;
		case "fr":
			clickHere1 = "Cliquez i&ccedil;i";
			clickHere2 = "si vous pr&eacute;f&eacute;rez ne pas r&eacute;v&eacute;ler votre adresse e-mail";
			validAddress = "Indiquez une adresse email valide, s.v.p.(username@domainname.domain)!";
			break;
		case "de":
			clickHere1 = "Klicken Sie hier";
			clickHere2 = "wenn Sie anonym bleiben wollen";
			validAddress = "Bitte geben Sie eine g&uuml;ltige E-Mail-Adresse ein! (username@domainname.domain)";
			break;
		default:
			clickHere1 = "Click Here";
			clickHere2 = "if you want to give us feedback without disclosing your personal data";
			validAddress = "Please enter a valid e-mail adress (username@domainname.domain)!";
			break;
	}
	if (document.forms['form1'].elements['emailaddress'].value != "") {
		defaultmail = document.forms['form1'].elements['emailaddress'].value;
	}

	if (defaultmail != "webmaster@pctopp.com") {
		var valiemail = false;
		var x = document.forms['form1'].elements['emailaddress'].value;
		var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9])+$/;
		if (filter.test(x)) {
			var domainlength = x.substring(x.lastIndexOf('.') + 1).length;
			if (domainlength >= 2) {
				valiemail = true;
			}
		}
		else {
			valiemail = false;
		}
		if (valiemail) {
			document.forms['form1'].submit();
		} else {
			document.location.href = '#mail';
			document.forms['form1'].elements['emailaddress'].focus();
			if (document.forms['form1'].elements['emailaddress'].value == "") {
				document.location.href = '#send';
				document.getElementById("emailcheck").innerHTML = "<span class='hint'><a href='#send' class='arr1'>" + clickHere1 + "</a><br />" + clickHere2 + ".";
			} else {
				alert(validAddress);
			}
		}
	} else {

		defaultmail != "webmaster@pctopp.com";
		document.forms['form1'].submit();
	}
}

function FormEntriesOk(language) {
	var formEmpty = "";

	switch (language) {
		case "en":
			formEmpty = "Your form does not contain any data.<br />Please check your entries";
			break;
		case "fr":
			formEmpty = "Votre formulaire est vide.<br />Contr&ocirc;lez vos entr&eacute;es, s.v.p.";
			break;
		case "de":
			formEmpty = "Das Formular enth&auml;lt keine Daten.<br />Bitte pr&uuml;fen Sie Ihre Eingaben";
			break;
		default:
			formEmpty = "Your form does not contain any data.<br />Please check your entries";
			break;
	}
	var FieldsNotEmpty = false;
	for (i = 0; i < 4; i++) {
		if (document.forms['form1'].elements['bewertung'][i].checked == true) FieldsNotEmpty = true;
	}

	for (i = 0; i < 4; i++) {
		if (document.forms['form1'].elements['support'][i].checked == true) FieldsNotEmpty = true;
	}

	if (document.forms['form1'].elements['info1'].checked == true) FieldsNotEmpty = true;

	if (document.forms['form1'].elements['comment'].value != "") FieldsNotEmpty = true;
	if (document.forms['form1'].elements['wish'].value != "") FieldsNotEmpty = true;


	document.getElementById("NoFeedbackValue").innerHTML = "";
	if (FieldsNotEmpty) {
		emailOK(language);
	} else {
		document.getElementById("NoFeedbackValue").innerHTML = "<span class='hint'>" + formEmpty + ".</span>";
	}
}

function checkColor() {
	document.getElementById("emailcheck").innerHTML = "";
}

/*
################################################################
Hide email address
Created	10.08.11	RS
################################################################
 */

//$(function(){
//var spt = $('span.mailus');
//var at = / at /;
//var dot = / dot /g;
//var addr = $(spt).text().replace(at,"@").replace(dot,".");
//$(spt).after('<a href="mailto:'+addr+'">'+ addr +'</a>')
//.hover(function(){window.status="Send a letter!";}, function(){window.status="";});
//$(spt).remove();
//});
