﻿// HANDLE WINDOW.ONLOAD:s ----------------------------------------------------

if (document.getElementById && document.getElementsByTagName && document.createTextNode) {
	window.onload = init;
}

var onLoads = new Array;
var domReady = new Array;
function init() {

    for (var i = 0; i < onLoads.length; i++) {
		eval(onLoads[i]);
	}
}

$(function() {

    var allDivs = document.getElementsByTagName('DIV');

    jQuery("#top_search_txt").keydown(function(event) {
        var ev = event;
        if (ev.keyCode == 13) //Enter
            jQuery(this).parent("form")[0].submit();
    });

    for (var i = 0; i < domReady.length; i++) {
        eval(domReady[i]);
    }
});


function addFunctionToDomReady(func)
{
    domReady[domReady.length] = func;
}

function addOnLoad(func) {
	onLoads[onLoads.length] = func;
}


// REPLACE SUBMIT BUTTONS ----------------------------------------------------
//addOnLoad('init_formSubmits()');
addFunctionToDomReady('init_formSubmits()');
function init_formSubmits() {

	var allInputs = document.getElementsByTagName('INPUT');
	
	for (var i = 0; i < allInputs.length; i++) {
		if( allInputs[i].type == 'submit') {
			var submit = allInputs[i];
			var form = submit.form;
			var theLink = document.createElement('A');
			theLink.className = "button " + submit.className;
			theLink.formId = form.id;
			theLink.submit = submit;
			theLink.onclick = submitForm;
			var theSpan = document.createElement('SPAN');
		
			theSpan.appendChild(document.createTextNode(submit.value));
			theLink.appendChild(theSpan);
		
			//submit.className += " hidden";
			submit.style.position = 'absolute';
			submit.style.top = '-9999px';
			submit.style.left = '-9999px';		
			submit.parentNode.appendChild(theLink);
			
		}
	}
	
}





function submitForm() {
	this.submit.click();
}


// EXTRA FUNCTIONS -----------------------------------------------------------

function getElementsByClassName(elementType, className) {
	allElements = document.getElementsByTagName('BODY')[0].getElementsByTagName(elementType);
	for( i = 0 ; i < allElements.length ; ++i ) {
		if( allElements[i].className == 'form_basic' ) {
			return allElements[i];
		}
	}
}


// FORM ERROR HANDLING -------------------------------------------------------

function form_errorCheck(namingContainer, container, fields) {
   
	// Recieve form-container and fields to check
   var formCont = document.getElementById(container);
	
	var fields = fields.split(',');
	var error = 0;
	if(!namingContainer)
	    namingContainer = "";
	for( i = 0 ; i < fields.length ; ++i ) {
	   thisField = document.getElementById(namingContainer + fields[i]);

	   if (thisField == null) {
	      //Try radio buttons
	      var name = (namingContainer + fields[i]).replace(/_/g, '$');
	      var thisFields = document.getElementsByName(name);
	      if (thisFields != null && thisFields.length > 0) {
	         for (var j = 0; j < thisFields.length; j++) {
	            if (thisFields[j].type == "radio" && thisFields[j].checked)
	               break;
	            if (j == thisFields.length - 1) {
	               thisFields[j].parentNode.getElementsByTagName('SPAN')[0].className = "label_error";
	               ++error;
	            }
	         }
	      }
	      else
			continue;
	   }

	   if (thisField != null) {
	      // Validate e-mail
	      if (thisField.type == 'text' && (thisField.id.toLowerCase()).indexOf('mail') != -1 && (thisField.value.indexOf('@') == -1 || thisField.value.indexOf('.') == -1)) {
	         thisField.parentNode.getElementsByTagName('SPAN')[0].className += thisField.className + ' label_error';
	         ++error;

	         // Validate regular text-filed
	         //} else if( thisField.type == 'select' && thisField.options[thisField.options.selectedIndex].value == '#' ) {
	         //	thisField.parentNode.getElementsByTagName('SPAN')[0].className += thisField.className + ' label_error';
	         //	++error;

	         // Validate select-list
	      } else if (thisField.type == 'text' && thisField.value == '') {
	         thisField.parentNode.getElementsByTagName('SPAN')[0].className += thisField.className + ' label_error';
	         ++error;

	         // If a select-list has been corrected
	         //} else if( thisField.type == 'select' && thisField.options[thisField.options.selectedIndex].value != '#' ) {
	         //	orignalCN = thisField.parentNode.getElementsByTagName('SPAN')[0].className.split(' ');
	         //	thisField.parentNode.getElementsByTagName('SPAN')[0].className = orignalCN[0];	

	         // If a text field has been corrected
	      } else if (thisField.type == 'text' && thisField.value != '' && thisField.parentNode.getElementsByTagName('SPAN')[0].className.indexOf('label_error') != -1) {
	         orignalCN = thisField.parentNode.getElementsByTagName('SPAN')[0].className.split(' ');
	         thisField.parentNode.getElementsByTagName('SPAN')[0].className = orignalCN[0];
	      }
	   }
	}
	
	if( error > 0 ) {
		if( !document.getElementById('error_alert') ) {
			var error_alert = document.createElement('P');
					error_alert.id = 'error_alert';
					error_alert.appendChild(document.createTextNode('Kontrollera de markerade f\xE4lten.'));
			var allAs = formCont.getElementsByTagName('A');
			for ( i = 0 ; i < allAs.length ; ++i ) {
				if( allAs[i].className.indexOf('button') != -1) {
					allAs[i].parentNode.appendChild(error_alert);
					break;
				}
			}
		}
	}
	return error;
}


// FORM ERROR HANDLING (SPECIFIK FORM) ---------------------------------------


// Order service
addOnLoad('init_form_validateServiceOrder()');

function init_form_validateServiceOrder() {
	if( document.getElementById('order_services_btn') ) {
		var formBtn = document.getElementById('order_services_btn').getElementsByTagName('A')[0];
		formBtn.onclick = form_validateServiceOrder;
	}
}

function form_validateServiceOrder() {

	ensureNamingContainer(this.submit);

	if( form_errorCheck(this.submit.NamingContainer, 'order_services_btn','order_name,order_mail,order_phone') == 0 ) {
		this.submit.click();
	}
}


// Faulty report for tenants
addOnLoad('init_form_tenantsObjectFaultyReport()');
addOnLoad('init_form_tenantsResidenceFaultyReport()');

function init_form_tenantsObjectFaultyReport() {
	if( document.getElementById('tenants_object_faulty_report_btn') ) {
		 var formBtn = document.getElementById('tenants_object_faulty_report_btn').getElementsByTagName('INPUT')[0];
		formBtn.onclick = form_validateTenantsObjectFaultyReport;
	}
}

function init_form_tenantsResidenceFaultyReport() {
   if (document.getElementById('tenants_residence_faulty_report_btn')) {
      var formBtn = document.getElementById('tenants_residence_faulty_report_btn').getElementsByTagName('INPUT')[0];
      formBtn.onclick = form_validateTenantsResidenceFaultyReport;
   }
}

function ensureNamingContainer(submit) {
	if(!submit.NamingContainer) {
        if(submit.namingcontainer)
            submit.Namingcontainer = submit.namingcontainer;
        if(submit.attributes && submit.attributes["namingcontainer"])
            submit.NamingContainer = submit.attributes["namingcontainer"].value;
        else
            submit.NamingContainer = "";
     }
}

function form_validateTenantsObjectFaultyReport() {
    
    ensureNamingContainer(this);

    return form_errorCheck(this.NamingContainer, 'tenants_object_faulty_report_btn', 'company,email,phone') == 0
 }

 function form_validateTenantsResidenceFaultyReport() {
 
    ensureNamingContainer(this);

    return form_errorCheck(this.NamingContainer, 'tenants_residence_faulty_report_btn', 'address,phone,contract,extrakeyuse,extralock') == 0;
 }


// Book meeting for premises
addOnLoad('init_form_premisesBook()');

function init_form_premisesBook() {
	if( document.getElementById('premises_book_btn') ) {
		var formBtn = document.getElementById('premises_book_btn').getElementsByTagName('A')[0];
		formBtn.onclick = form_validatePremisesBook;
	}
}

function form_validatePremisesBook() {

	ensureNamingContainer(this.submit);

	if( form_errorCheck(this.submit.NamingContainer,'premises_book_btn','book_name,book_mail,book_phone,book_company') == 0 ) {
		this.submit.click();
	};
}


// ADJUST CONTENT HEIGHT TO SYNC WITH MENU -----------------------------------

addOnLoad('init_adjustContentHeight()');

function init_adjustContentHeight() {
	var content_wrapper;
	if( document.getElementById('content_wrapper_a') ) {
		content_wrapper = jQuery("#content_wrapper_a");
	} else if( document.getElementById('content_wrapper_b') ) {
		content_wrapper = jQuery("#content_wrapper_b");
	} else if( document.getElementById('content_wrapper_c') ) {
		content_wrapper = jQuery("#content_wrapper_c");
	} else if (document.getElementById('content_wrapper_d')) {
		content_wrapper = jQuery("#content_wrapper_d");
	}


	var left_col = jQuery('#left');
	if (left_col.length > 0) {
		var height = left_col.height() + 20;
		if(content_wrapper.height() < height)
			content_wrapper.height(height);
	}
}


// APPEND QUICKTIME MOVIES ---------------------------------------------------

function movObject(src,name,width,height) {
	this.txt = '<object ';
	this.txt+= 'classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" ';
	this.txt+= 'codebase="http://www.apple.com/qtactivex/qtplugin.cab"';
	this.txt+= 'type="video/quicktime"';
	this.txt+= 'title="' + name + '"';
	this.txt+= 'width="' + width + '"';
	this.txt+= 'height="' + ( ( height * 1 ) + 15 ) + '">';
	this.txt+= '<param name="src" value="' + src + '"></param>';
	this.txt+= '<param name="autostart" value="true"></param>';
	this.txt+= '<param name="controller" value="true"></param>';	
	this.txt+= '</object>';
	this.write = movObjectWrite; 
}

function movObjectWrite(container) {
	var movContainer = document.getElementById(container);
	if( movContainer ) {
		movContainer.innerHTML = this.txt; 
	}
}

// BROWSER DETECT ------------------------------------------------------------

var userBrowser = detectBrowser();

function detectBrowser() {
	var agent 	= navigator.userAgent.toLowerCase();
	
	this.isSafari	= (agent.indexOf('safari') != -1);
	this.isSafari2 = (this.isSafari && (parseFloat(agent.substring(agent.indexOf("applewebkit/")+"applewebkit/".length,agent.length).substring(0,agent.substring(agent.indexOf("applewebkit/")+"applewebkit/".length,agent.length).indexOf(' '))) >=  300));
	this.isOpera	= (agent.indexOf('opera') != -1);
	this.isNN		= (agent.indexOf('netscape') != -1);
	this.isFF		= (agent.indexOf('firefox') != -1);		
	this.isIE		= (agent.indexOf('msie') != -1);
		
	return this;
}


// HANDLE TABLES -------------------------------------------------------------

addOnLoad('tables_setStripes()');

function tables_setStripes() {
	// Loop throw all tables and check for the ones with the class name "stripes"
	var tables = document.getElementsByTagName('TABLE');
	for( i = 0 ; i  < tables.length ; ++i ) {
		if( tables[i].className == 'stripes' ) {
			var trs = tables[i].getElementsByTagName('TR');
			var rowClass = 'even';
			// Loop throw the TRs and see if the contain THs or TDs and apply the correct class
			for( j = 0 ; j < trs.length ; ++j ) {
				if( trs[j].getElementsByTagName('TH')[0] && j == 1 ) {
					trs[j].className = 'sub_header';
				} else if( trs[j].getElementsByTagName('TD')[0] ) {
					if( rowClass == 'even' ) { rowClass = 'odd' } else { rowClass = 'even' }
					trs[j].className = rowClass;
				}
			}
		}
	}
}



// CHANGE URLS WITH DROP-DOWNS -----------------------------------------------

function DD_goUrl() {
	window.location.href = this.options[this.options.selectedIndex].value;
}




// DECREASE FONT-SIZE IN WINDOWS ---------------------------------------------

var agent = navigator.userAgent.toLowerCase();

if( agent.indexOf('win') != -1) {
	document.write('<link rel="stylesheet" type="text/css" media="all" href="/css/win.css" />');
}


// ADJUST IMAGE-TEXT FOR IMAGES FLOATING IN TEXT -----------------------------

addOnLoad('global_fixImagesText()');

function global_fixImagesText() {
	if( document.getElementById('content') ) {
		var images = document.getElementById('content').getElementsByTagName('img');
		for( i = 0 ; i < images.length ; ++i ) {
			if( images[i].parentNode.className == 'img_left' || images[i].parentNode.className == 'img_right' ) {
				images[i].parentNode.style.width = images[i].offsetWidth + 'px';
			}
		}
	}
}

// FIX when displaying empty dt records in contact
jQuery(function() {
	jQuery(".info_general dt:empty").html("&nbsp;")
});