/*

   javascript lib for pumatiger
   
   this file contains all site specific functions
   
   author: henry farkas
   date:   03.04.2009

*/
 
// ------------------------------------------------------------------
// config
 
// encrypted email adresses
var oCaEmail = new Object();
oCaEmail.id = 'mail_ca';
oCaEmail.encryptedAdress = 'pdlowr=khqu|Csxpdwljhu1fd';
oCaEmail.encryptionShift = 3;
oCaEmail.atReplacement = ' /AT/ ';

var oDeEmail = new Object();
oDeEmail.id = 'mail_de';
oDeEmail.encryptedAdress = 'qempxs>lirv}Dtyqexmkiv2hi';
oDeEmail.encryptionShift = 4;
oDeEmail.atReplacement = ' /AT/ ';

// add email-adress metadata objects to array
var _aEmailAdresses = new Array(
	oCaEmail,
	oDeEmail
); 
 
// ------------------------------------------------------------------
// constants

var _ue_ = String.fromCharCode(0xFC);
var _Ue_ = String.fromCharCode(0xDC);

var _ae_ = String.fromCharCode(0xE4);
var _Ae_ = String.fromCharCode(0xC4);

var _oe_ = String.fromCharCode(0xF6);
var _Oe_ = String.fromCharCode(0xD6);
      
var _sz_ = String.fromCharCode(0xDF);

// ------------------------------------------------------------------
// general functions

// returns index of obj in array
function getIndex(array,obj) {
   for (var i=0; i<array.length; i++) {
      if (array[i] == obj) return i;
   }
}

function trim(zeichenkette) {
  // Erst führende, dann Abschließende Whitespaces entfernen
  // und das Ergebnis dieser Operationen zurückliefern
  return zeichenkette.replace (/^\s+/, '').replace (/\s+$/, '');
}

function replaceUmlaute(str) {
	
	str = str.replace(new RegExp(/ü/g), _ue_);
	str = str.replace(new RegExp(/Ü/g), _Ue_);
	
	str = str.replace(new RegExp(/ä/g), _ae_);
	str = str.replace(new RegExp(/Ä/g), _Ae_);
	
	str = str.replace(new RegExp(/ö/g), _oe_);
	str = str.replace(new RegExp(/Ö/g), _Oe_);
	
	str = str.replace(new RegExp(/ß/g), _sz_);
	
	return str; 	
}


// ------------------------------------------------------------------
//                                   


// initial fuction - called after page has been loaded completely 
function init() {
	//console.log("init() called");
		
	// init thickboxes  
	/*
	tb_init('a.thickbox, area.thickbox, input.thickbox');//pass where to apply thickbox
	imgLoader = new Image();// preload image
	imgLoader.src = tb_pathToImage;  
	*/
	
   // write mail links
	replaceMailLinks();		
	
	// set pdf download link functionality
	$('a.pdf_dl').bind("click", downloadPDF);	
   
}



// ------------------------------------------------------------------
// code for mailer

function submitMail() {

	var aFields = $(':input:not(:hidden):not(:button)').get();
	
	var sMailerParams = "";
	var sErrorMsg = "";
	var bError = false;
	
	for (var i=0; i<aFields.length; i++) {
		// check if fields have content
		if (!trim(aFields[i].value)) {
			// error                       			                       
			if (!trim(sErrorMsg)) sErrorMsg = "Bitte vervollständigen Sie folgende Eingabfelder: \n";			
			sErrorMsg += "- " + $(aFields[i]).attr('name') + " \n";
			bError = true;
		}
	}
	
	if (!bError) {
		// check mail adress
		var usr = "([a-zA-Z0-9][a-zA-Z0-9_.-]*|\"([^\\\\\x80-\xff\015\012\"]|\\\\[^\x80-\xff])+\")";
		var domain = "([a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*[a-zA-Z0-9][a-zA-Z0-9._-]*\\.[a-zA-Z]{2,5}";
		var regex = "^"+usr+"\@"+domain+"$";
		var rxMail = new RegExp(regex);
		var check = (rxMail.test($('input#Email').val()));
		if (check!=true) {
		   sErrorMsg = "Die von Ihnen angegebene E-Mail Adresse ist ungültig.";
			bError = true;
		}	 
	}	
	
	if (!bError) {
		// check phone number
		var rxPhone = new RegExp(/^[\d\/\\\(\)\.\s+-]+$/);       
		check = (rxPhone.test($('input#Tel').val()));
		if (check!=true) {
		   sErrorMsg = "Die von Ihnen angegebene Telefonnummer ist ungültig.";
			bError = true;
		}	
	}
	
	if (bError) displayMessage(sErrorMsg); 
	else {                      
		
		var oData = new Object();
		oData.ossadnik = 1;
		oData.name = replaceUmlaute(aFields[0].value);
		oData.email = aFields[1].value;
		oData.tel = aFields[2].value;
		oData.nachricht = replaceUmlaute(aFields[3].value);                                                                                  

		var sMsgLayer = 
			'<!-- message layer -->' +
			'<div id="messageLayer" style="position:absolute; width:100%; height:' + getPageSize()[1] + 'px; z-index: 2; background-image: url(img/00_fullOverlay.gif)">' +     
			'</div>';

		$('div#globalContainer').append(sMsgLayer);
	
		$.post(
			"http://www.pumatiger.de/haenger-verleih/mailer/atomicmailer.php", 
			oData, 
			function(data){
				alert(replaceUmlaute(data));
				$('div#messageLayer').remove();
			}, 
			"text"
		);

	}

}


// ------------------------------------------------------------------
// message layer

function displayMessage(sMsg) {

	var sMsgLayer = 
		'<!-- message layer -->' +
		'<div id="messageLayer" style="position:absolute; width:100%; height:' + getPageSize()[1] + 'px; z-index: 2; background-image: url(img/00_fullOverlay.gif)">' +     
		'</div>';

	$('div#globalContainer').append(sMsgLayer);
	
	alert(replaceUmlaute(sMsg));
	
	$('div#messageLayer').remove();

}


// ------------------------------------------------------------------
// mail adress encryption


function UnCryptMailto(s, shift) {
	var n=0;
	var r="";
	for(var i=0;i<s.length;i++) { 
		n=s.charCodeAt(i); 
		if (n>=8364) {n = 128;}
		r += String.fromCharCode(n-(shift)); 
	}
	return r;
}

function linkTo_UnCryptMailto(s, shift)	{
	location.href=UnCryptMailto(s, shift);
}

function replaceMailLinks() {

	for (var i=0; i<_aEmailAdresses.length; i++) {        		
		$('#' + _aEmailAdresses[i].id).replaceWith(
			"<a href=\"javascript:linkTo_UnCryptMailto('" + _aEmailAdresses[i].encryptedAdress + "', " + _aEmailAdresses[i].encryptionShift + ");\">" + UnCryptMailto(_aEmailAdresses[i].encryptedAdress, _aEmailAdresses[i].encryptionShift).substr(7).replace(/@/, _aEmailAdresses[i].atReplacement) + '</a>'
		);		
	}  
}


// ------------------------------------------------------------------
// pdf download  

function downloadPDF() {

	var sPathFileName = $(this).attr('pathFileName');               

	// append fake form to a tag
   $(this).append("<form name='fake_form' action='php/downloadPDF.php' method='POST' style='display: none'><input name='pathFileName' id='pathFileName' value='" + sPathFileName + "' /></form>");                    
   
   // submit form
   $("form[name='fake_form']").submit();
   
   // remove form
   $(this).children().empty();
}