
function D2S(){}
D2S.prototype.dom = {
	setOpacity: function(obj, value)
	{
		if(obj == undefined){
			return;
		}
		if(obj == null){
			return;
		}
		obj = obj.style;
		
		obj.opacity = value/10;
		obj.filter = 'alpha(opacity=' + value*10 + ')';
		obj = null;
	},
	
	showElementById: function(elementId)
	{
		var objectStyle = document.getElementById(elementId).style;
		objectStyle.display = "block";
		objectStyle = null;
	},
	
	hideElementById: function(elementId)
	{
		var objectStyle = document.getElementById(elementId).style;
		objectStyle.display = "none";
		objectStyle = null;
	},
	
	getXPositionByObject: function(obj)
	{
		var pos = 0; 
		if(obj.offsetParent){ 
			while(obj.offsetParent){ 
				pos += obj.offsetLeft;
				obj = obj.offsetParent; 
			} 
		} 
		else if(obj.x){ 
			pos += obj.x;
		}
		return pos; 
	},
	
	getYPositionByObject: function(obj)
	{
		var pos = 0; 
		if(obj.offsetParent){ 
			while(obj.offsetParent){ 
				pos += obj.offsetTop;
				obj = obj.offsetParent; 
			} 
		} 
		else if(obj.y){
			pos += obj.y;
		}
		return pos; 
	}

};

var d2s = new D2S();FFW.prototype.iframepopup = {
	
	_isTemplateLoaded: false,
	_loadTemplate: function(){
		if(this._isTemplateLoaded == true){
			return true;
		}
		//<!--
			var templateDE = "<div id=\"iframe_popup\"><div class=\"cover\">&nbsp;</div><table class=\"gallery\"><tr class=\"head\"><td colspan=\"3\" onclick=\"ffw.iframepopup.close();\"></td></tr><tr class=\"center\"><td class=\"side_space\" onclick=\"ffw.iframepopup.close();\"></td><td id=\"iframe_popup_center_td\"><div class=\"view\" id=\"iframe_popup_view\" style=\"height: 100%;\"><table id=\"iframe_popup_image_table\"><tr><td></td><td class=\"pictures\"></td><td><div class=\"close_button\"><a href=\"javascript:ffw.iframepopup.close();\">schließen x</a></div></td></tr><tr style=\"height: 100%;\"><td width=\"1%\"></td><td id=\"iframe_popup_image_table_td\" style=\"padding-top: 20px;\"><iframe id=\"iframe_popup_iframe\" name=\"iframe_popup_iframe\" src=\"/blank.htm\" width=\"630\" frameborder=\"0\"></iframe></td><td width=\"1%\"></td></tr></table></div></td><td class=\"side_space\" onclick=\"ffw.iframepopup.close();\"></td></tr><tr class=\"foot\"><td colspan=\"3\" onclick=\"ffw.iframepopup.close();\"></td></tr></table></div>";
			var templateEN = "<div id=\"iframe_popup\"><div class=\"cover\">&nbsp;</div><table class=\"gallery\"><tr class=\"head\"><td colspan=\"3\" onclick=\"ffw.iframepopup.close();\"></td></tr><tr class=\"center\"><td class=\"side_space\" onclick=\"ffw.iframepopup.close();\"></td><td id=\"iframe_popup_center_td\"><div class=\"view\" id=\"iframe_popup_view\" style=\"height: 100%;\"><table id=\"iframe_popup_image_table\"><tr><td></td><td class=\"pictures\"></td><td><div class=\"close_button\"><a href=\"javascript:ffw.iframepopup.close();\">schließen x</a></div></td></tr><tr style=\"height: 100%;\"><td width=\"1%\"></td><td id=\"iframe_popup_image_table_td\" style=\"padding-top: 20px;\"><iframe id=\"iframe_popup_iframe\" name=\"iframe_popup_iframe\" src=\"/blank.htm\" width=\"630\" frameborder=\"0\"></iframe></td><td width=\"1%\"></td></tr></table></div></td><td class=\"side_space\" onclick=\"ffw.iframepopup.close();\"></td></tr><tr class=\"foot\"><td colspan=\"3\" onclick=\"ffw.iframepopup.close();\"></td></tr></table></div>";
		//-->
		if(this._locale == "de"){
			document.body.innerHTML += templateDE;
		}else{
			document.body.innerHTML += templateEN;
		}
		this._isTemplateLoaded = true;
	},
		
	_show: function(){
		$("#iframe_popup_image").css("display", "none");
		$("#iframe_popup_loader").css("display", "block");
		$("#iframe_popup").css("display", "block");
		
		var height = $("#iframe_popup_center_td").height();
		$("#iframe_popup_view").css("height", height + "px");
		$("#iframe_popup_iframe").css("height", (height - 40) + "px");
	},

	_fixScrollPosition: function(){
		var pageYOffset = Math.max($(window).scrollTop(), $(document.documentElement).scrollTop());
		var pageXOffset = Math.max($(window).scrollLeft(), $(document.documentElement).scrollLeft());
		
		$("#iframe_popup").css("left", pageXOffset + "px");
		$("#iframe_popup").css("top", pageYOffset + "px");
	},
	
	open: function(path){		
		this._loadTemplate();
		this._show();
		
		$('body').css("overflow", "hidden");
		
		$("#iframe_popup_iframe").attr("src", path);
		
		this._fixScrollPosition();
	},
	
	close: function(){
		$("#iframe_popup").css("display", "none");
		$("#iframe_popup_iframe").attr("src", "/blank.htm");
		$('body').css("overflow", "auto");
	}
	
};var memberInfoTimer;
var MemberInfoObject;

function FFW(){}
FFW.prototype.dom = {
	adjustContentArea: function(){
		var bodyObject = document.getElementById("main_row_content").style;
		bodyObject.height = "200px";
		bodyObject.height = (document.body.clientHeight-152)+"px";
		bodyObject = null;
	},
	
	showMemberinfo: function(Object, url, name, city, email, status, imageUrl){
		var x = d2s.dom.getXPositionByObject(Object);
		var y = d2s.dom.getYPositionByObject(Object);
		
		var MemberDetailTable = document.getElementById("table_member_info");

		var yOffset = 128;
		
		if(typeof Object == "object"){
			if(Object.src != undefined){
				imageUrl = Object.src;
				yOffset = 116;
			}
			MemberInfoObject = Object;
		}
				
		MemberDetailTable.style.left = (x - 2) + "px";
		MemberDetailTable.style.top = (y - yOffset) + "px";
		
		var MemberDetailImage = document.getElementById("member_info_image");
		MemberDetailImage.src = imageUrl;
		
		var MemberDetailName = document.getElementById("member_info_name");
		MemberDetailName.innerHTML = name;

		var MemberDetailCity = document.getElementById("member_info_city");
		MemberDetailCity.innerHTML = city;
		
		/*
		var MemberDetailEmail = document.getElementById("member_info_email");
		MemberDetailEmail.innerHTML = email;
		MemberDetailEmail.href = "mailto:"+email;
		*/

		/*
		var MemberDetailStatus = document.getElementById("member_info_status");
		if(status == ""){
			MemberDetailStatus.src = "/Project/Frontend/Resources/images/1px.gif";
		}else
		{
			MemberDetailStatus.src = "/Project/Frontend/Resources/images/" + status.toLowerCase() + "_member.png";
		}
		*/
		
		document.onmousemove = ffw.windows.getGlobalCoord;
		
		var MemberDetailProfile = document.getElementById("member_info_profile_link");
		MemberDetailProfile.href = url;
		window.clearInterval(memberInfoTimer);
		memberInfoTimer = setInterval("ffw.dom.checkMemberInfo()", 250);
	},
	
	hideMemberinfo: function(){
		var MemberDetailTable = document.getElementById("table_member_info");
		MemberDetailTable.style.left = -2000 + "px";
		MemberDetailTable.style.top = -2000 + "px";
		window.clearInterval(memberInfoTimer);
		document.onmousemove = "";
	},
	
	checkMemberInfo: function(){
		if(ffw.dom.isMouseOver(MemberInfoObject) == false &&
		   ffw.dom.isMouseOver(document.getElementById("table_member_info")) == false)
		{
			ffw.dom.hideMemberinfo();
		}
	},
	
	isMouseOver: function(Object){
		var xPos = d2s.dom.getXPositionByObject(Object);
		var yPos = d2s.dom.getYPositionByObject(Object);
		
		if(window.MouseX >= xPos && window.MouseX <= xPos+Object.offsetWidth &&
		   window.MouseY >= yPos && window.MouseY <= yPos+Object.offsetHeight)
		{
			return true;
		}else{
			return false;
		}
	},

	openNewWindow: function(url, width, height){
	    var left = parseInt((screen.availWidth/2) - (width/2));
	    var top = parseInt((screen.availHeight/2) - (height/2));
	    var windowOptions = "scrollbars=yes,width=" + width + ",height=" + height + ",status,resizable,left=" + left + ",top=" + top + "screenX=" + left + ",screenY=" + top;
	    window.open(url, "newWindow", windowOptions);
	}
};

FFW.prototype.windows = {
		getGlobalCoord: function(e){
			var e;
			if(!e){
				window.MouseX = event.clientX + document.documentElement.scrollLeft;
				window.MouseY = event.clientY + document.documentElement.scrollTop;	
			}else{
				window.MouseX = e.pageX;
				window.MouseY = e.pageY;
			}
			return false;
		}
};

FFW.prototype.form = {
	writeValueById : function(target, value){
		var Obj = document.getElementById(target);
		Obj.value = value;
	}, 
	
	checkEMail : function(emailAddress){
		var regularFilter = /^[a-z]{1}[a-z0-9_.-]{0,}[@]{1}[a-z0-9.-]{2,}[.]{1}[a-z]{2,4}$/;
		if(emailAddress.search(regularFilter) !== -1){
			return true;
		}
		return false;
	},
	
	resetBorder : function(formObject){
		if(formObject != null){
			formObject.style.borderColor = "#727272";
		}
	},
	
	decrypt : function(crypttext){
		var text = "";
		for(var i = 0 ; i < crypttext.length ; i++){
			var c = crypttext.charCodeAt(i);
			text = text + String.fromCharCode(c+1);
		}
		return text;
	},
	
	updateCity : function(Object){
		if(Object.value == ""){
			return;
		}
		if(Object.value == "Alle"){
			return;
		}
		
		ffw.form.writeValueById("zip", "Alle");
	},
	
	updateZip : function(Object){
		if(Object.value == ""){
			return;
		}
		if(Object.value == "Alle"){
			return;
		}
		
		ffw.form.writeValueById("city", "Alle");
	},
	
	updateState : function(Object){
		if(Object.value == ""){
			return;
		}
		if(Object.value == "Alle"){
			return;
		}
		
		ffw.form.writeValueById("country", "Deutschland");
	},
	
	updateCountry : function(Object){
		if(Object.value == ""){
			return;
		}
		if(Object.value == "Alle"){
			return;
		}
		if(Object.value == "Deutschland"){
			return;
		}
		
		ffw.form.writeValueById("state", "Alle");
	},

	updateTag : function(Object, target){
		var TagPrioritySelect = document.getElementById(target);
		
		if(Object.checked == true){
			TagPrioritySelect.style.visibility = 'visible';
			tagCounter++;
		}else{
			TagPrioritySelect.style.visibility = 'hidden';
			tagCounter--;
			if(TagPrioritySelect.value == 1) tagCounterBronze--;
			if(TagPrioritySelect.value == 2) tagCounterSilver--;
			if(TagPrioritySelect.value == 3) tagCounterGold--;
			TagPrioritySelect.value = '0';
		}		
	},
	
	updatePriority : function(Object){
		if(this.checkPriority() == false){
			Object.options[0].selected = true;
		}
	},
	
	submitContactDetails : function(){
		var requieredFields = new Array("first_and_middle_names", "sure_name", "email_address");
		var errorFound = false;
		
		if(this.checkEMail(document.getElementById("web_post_email_address").value) == false){
			document.getElementById("web_post_email_address").style.borderColor = "#D80014";
			alert("Bitte überprüfen Sie die E-Mailadresse.");
			return false;
		}
		
		for(var i = 0; i < requieredFields.length; i++){
			if(document.getElementById("web_post_"+requieredFields[i]).value == ""){
				document.getElementById("web_post_"+requieredFields[i]).style.borderColor = "#D80014";
				errorFound = true;
			}
		}
		
		if(errorFound == true){
			alert("Bitte füllen Sie die markierten Felder aus.");
		}else{
			document.getElementById("d2scms_post_action_contact_details").submit();
		}
	},
	
	checkTags : function(){
		var tags = 0;
		
		var id = 0;

		for(var id = 0; id < 999; id++){
			var Tag = document.getElementById("tagid_" + id);
			if(Tag != null){
				if(Tag.checked == true){
					tags++;
				}
			}else{
				break;
			}
		}

		return tags;
	},
	
	checkPriority : function(){
		var id = 0;
		
		var result = true;
		
		var tagCounter = 0;
		var tagCounterGold = 0;
		var tagCounterSilver = 0;
		var tagCounterBronze = 0;

		for(var id = 0; id < 999; id++){
			var Tag = document.getElementById("tag_priority_" + id);
			if(Tag != null){
				if(Tag.style.visiblity != "hidden"){
					tagCounter++;
					if(Tag.value == "1"){
						tagCounterBronze++;
					}
					if(Tag.value == "2"){
						tagCounterSilver++;
					}
					if(Tag.value == "3"){
						tagCounterGold++;
					}
				}
			}else{
				break;
			}
		}

		if(tagCounterGold > 2){
			result = false;
			alert("Sie dürfen nur 2 mal den Gold-Status vergeben");
		}
		
		if(tagCounterSilver > 3){
			result = false;
			alert("Sie dürfen nur 3 mal den Silber-Status vergeben");
		}
		
		if(tagCounterBronze > 4){
			result = false;
			alert("Sie dürfen nur 4 mal den Bronze-Status vergeben");
		}
		
		return result;
	},
	
	submitBranche : function(){
		var options = 0;
		options += this.checkTags();
		
		/*
		if(document.getElementById("web_post_other_branche_1").value != ""){
			options++;
		}
		if(document.getElementById("web_post_other_branche_2").value != ""){
			options++;
		}
		if(document.getElementById("web_post_other_branche_3").value != ""){
			options++;
		}
		*/
			
		if(options > 9){
			alert("Sie dürfen maximal 9 Branchen auswählen.");
		}else{
			if(this.checkPriority() == true){
				document.getElementById("d2scms_post_action_branche").submit();
			}
		}
	},
	
	submitFieldOfWork : function(){
		var options = 0;
		options += this.checkTags();
		
		/*
		if(document.getElementById("web_post_other_field_of_work_1").value != ""){
			options++;
		}
		if(document.getElementById("web_post_other_field_of_work_2").value != ""){
			options++;
		}
		if(document.getElementById("web_post_other_field_of_work_3").value != ""){
			options++;
		}
		*/
		
		if(options > 9){
			alert("Sie dürfen maximal 9 Arbeitsbereiche auswählen.");
		}else{
			document.getElementById("d2scms_post_action_field_of_work").submit();
		}
	},
	
	submitTask : function(){
		var options = 0;
		options += this.checkTags();
		
		/*
		if(document.getElementById("web_post_other_task_1").value != ""){
			options++;
		}
		if(document.getElementById("web_post_other_task_2").value != ""){
			options++;
		}
		if(document.getElementById("web_post_other_task_3").value != ""){
			options++;
		}
		*/
		
		
		if(options > 9){
			alert("Sie dürfen maximal 9 Aufgaben auswählen.");
		}else{
			if(this.checkPriority() == true){
				document.getElementById("d2scms_post_action_task").submit();
			}
		}
	}, 
	
	submitSendProfile : function(){
		if(this.checkEMail(document.getElementById("web_post_email_address").value) == false){
			document.getElementById("web_post_email_address").style.borderColor = "#D80014";
			alert("Bitte überprüfen Sie die E-Mailadresse.");
			return false;
		}
		return true;
	}, 
	
	updateCounter : function(Textarea, counter_element, max_length){
		Object = document.getElementById(counter_element);
		
		if(Textarea.value.length > max_length){
			Textarea.value = Textarea.value.substring(0, max_length);
		}
		
		Object.innerHTML = "Maximale Zeichenanzahl: " + max_length + " &nbsp;&nbsp;&nbsp; Aktuelle Zeichenanzahl: " + Textarea.value.length + " von " + max_length;
	},
	
	submitMarketMonitorOrder : function(){
		var requieredFields = new Array("salutation", "first_and_middle_names", "sure_name", "postal_zip_code", "city", "street", "country", "email_address");
		var errorFound = false;
		
		for(var i = 0; i < requieredFields.length; i++){
			if(document.getElementById("web_post_"+requieredFields[i]).value == ""){
				document.getElementById("web_post_"+requieredFields[i]).style.borderColor = "#D80014";
				errorFound = true;
			}
		}
		
		if(this.checkEMail(document.getElementById("web_post_email_address").value) == false){
			document.getElementById("web_post_email_address").style.borderColor = "#D80014";
			errorFound = true;
			alert("Bitte überprüfen Sie die E-Mailadresse.");
			return false;
		}
		
		if(document.getElementById("aggrement").checked == false){
			document.getElementById("aggrement").style.borderColor = "#D80014";
			errorFound = true;
			alert("Sie müssen die Hinweise zu Zahlung und Lieferung bestädigen.");
			return false;
		}
		
		if(errorFound == true){
			alert("Bitte füllen Sie die markierten Felder aus.");
		}else{
			document.getElementById("d2scms_post_action_market_monitor_order").submit();
		}
	},
	
	submitBriefingPackOrder : function(){
		var requieredFields = new Array("first_and_middle_names", "sure_name", "postal_zip_code", "city", "street", "email_address");
		var errorFound = false;
		
		for(var i = 0; i < requieredFields.length; i++){
			if(document.getElementById("web_post_"+requieredFields[i]).value == ""){
				document.getElementById("web_post_"+requieredFields[i]).style.borderColor = "#D80014";
				errorFound = true;
			}
		}
		
		if(this.checkEMail(document.getElementById("web_post_email_address").value) == false){
			document.getElementById("web_post_email_address").style.borderColor = "#D80014";
			errorFound = true;
			alert("Bitte überprüfen Sie die E-Mailadresse.");
			return false;
		}
		
		if(document.getElementById("aggrement").checked == false){
			document.getElementById("aggrement").style.borderColor = "#D80014";
			errorFound = true;
			alert("Sie müssen ihre Anforderung bestädigen.");
			return false;
		}
		
		if(errorFound == true){
			alert("Bitte füllen Sie die markierten Felder aus.");
		}else{
			document.getElementById("d2scms_post_action_briefing_pack_order").submit();
		}
	}
	
};

String.prototype.rot13 = function(){
    return this.replace(/[a-zA-Z]/g, function(c){
        return String.fromCharCode((c <= "Z" ? 90 : 122) >= (c = c.charCodeAt(0) + 13) ? c : c - 26);
    });
};

FFW.prototype.forum = {
		showCreateNewThread : function(){
			d2s.dom.showElementById("create_new_thread_container");
			$TdTopRight = document.getElementById("forum_bar_top_right");
			$TdTopRight.style.color = "#E91803";
			$TdTopRight.innerHTML = "Sie verfassen ein neues Thema";
		},
		
		submitCreateNewThread : function(){
			
			if(document.getElementById("web_post_title").value == false){
				document.getElementById("web_post_title").style.borderColor = "#D80014";
				alert("Bitte gegeben Sie ein Titel für das neue Thema an.");
				return false;
			}

			if(document.getElementById("web_post_posttext").value == false){
				document.getElementById("web_post_posttext").style.borderColor = "#D80014";
				alert("Bitte gegeben Sie einen Text für das neue Thema an.");
				return false;
			}
			
			return true;
		},
		
		submitDeletePost : function(){
			return confirm("Den Beitrag wirklich löschen?");
		}
};

var ffw = new FFW();
