// Define some global vars
var IE = document.all?true:false;
var mouseX = 0;
var mouseY = 0;

// Set the init onload handler
onload=init;

// If NS -- that is, !IE -- then set up for mouse capture
if (!IE) {
	document.captureEvents(Event.MOUSEMOVE)
}

// Set-up to use getMouseXY function onMouseMove
document.onmousemove = getMouseXY;

/****************************************************************
* Abort action in form
* arguments:	none
* returns:	none
****************************************************************/
function abortAction(){
	document.location.href='./';
}

function showImage(name){
	c = '<img src="/images/upload/'+name+'">';
	write2id(c,'imgPreview');
	if(typeof document.getElementById('imgPreview') != "undefined") 
		{
			document.getElementById('imgPreview').style.top= mouseY-80+"px";
			document.getElementById('imgPreview').style.left= mouseX+20+"px";
		}
}
function hideImage(){
	c = '';
	write2id(c,'imgPreview');
}

/****************************************************************
* Init function, checks for certain exceptions to set up init 
* actions
* globals:		various properties
* arguments:	none
* returns:		none
****************************************************************/
function init() {
	if (document.getElementById('frm_enter_m_data')) {
		xtraField('b_typ',document.getElementById('b_typ'));
		xtraField('g_typ',document.getElementById('g_typ'));
		xtraField('v_sys',document.getElementById('v_sys'));
		xtraField('h_vat',document.getElementById('h_vat'));
	}
	if (document.forms['frm_order_adv']) {
		toggleSection('F');
		toggleSection('L');
		setAddressDisplay('F',document.forms['frm_order_adv'].FFirma_sel);
		setAddressDisplay('L',document.forms['frm_order_adv'].LFirma_sel);
	}
	/*
	if (document.forms['frm_enter_m_data']) {
		toggleSection('R');
	}
	*/
}

/****************************************************************
* Set onkeypress event handler
****************************************************************/
document.onkeypress = checkCR;

/****************************************************************
* Capture keypress and check for CR
* arguments:	evt => event object
* returns:		true
****************************************************************/
function checkCR(evt) {
    var evt  = (evt) ? evt : ((event) ? event : null);
    var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
    if ((evt.keyCode == 13) && (node.type=="text")) {
    	return false;
    }
}

/****************************************************************
* Capture mouse position
* arguments:	e => event object
* returns:		true
****************************************************************/
function getMouseXY(e) {
	if (IE) { 
		// grab the x-y pos.s if browser is IE
		if (document.documentElement && document.documentElement.scrollTop) {
			mouseX = event.clientX + document.documentElement.scrollLeft;
			mouseY = event.clientY + document.documentElement.scrollTop;
		} else if (document.body) {
			mouseX = event.clientX + document.body.scrollLeft;
			mouseY = event.clientY + document.body.scrollTop;
		}
	}	else {  
		// grab the x-y pos.s if browser is NS
		mouseX = e.pageX;
		mouseY = e.pageY;
  }  
	// catch possible negative values in NS4
	if (mouseX < 0) {
		mouseX = 0;
	}
	if (mouseY < 0)	{
		mouseY = 0;
	}
	return true;
}

var detect = navigator.userAgent.toLowerCase();
isOpera = (detect.match("opera")=="opera");
function hlightOff(){
	tmpObj = document.getElementById('divIFloater');
	tmpObj.style.left="0px";
	tmpObj.style.width="1px";
}

function hlightSeg(obj){
	tmpObj = document.getElementById('divIFloater');
	var offset=40;
	if (isOpera){
		offset=0;
	}
	tmpObj.style.left=(obj.offsetLeft+offset)+"px";
	tmpObj.style.width=obj.width+"px";
}

function toggleFaq(id){
	tmpObj = document.getElementById('a'+id);
	if (tmpObj.style.visibility!='visible'){
		tmpObj.style.visibility='visible';
		tmpObj.style.display ='block';
	} else {
		tmpObj.style.visibility='hidden';
		tmpObj.style.display ='none';
	}
}

function chooseMnc(){
	window.open( "chooseMnc.htm", "mnc", "resizable=1,HEIGHT=200,WIDTH=600"); 
}
function insertAnchor(mystr){
	if (mystr!=""){
		tmpArr=mystr.split(":");
		var thestr='<a name="'+tmpArr[0]+'">'+tmpArr[1]+'</a>';
		addText(thestr);
	}
}
function submitForm() {
	updateRTE('content');
	return true;
}
previewName='';
fileName='';
function previewImageF(name){
	tmpObj = document.getElementById('previewBlock');
	tmpObj.style.display ='block';
	document.images['previewImage'].src='../images/'+addFolderPrefix(name);
}
function prepareDoc(name){
	docName=name;
	document.getElementById('docTitle').value=name;
}
function addFolderPrefix(str){
	//str=str.substr(str.length-3,str.length)+'/'+str;
	return str;
}
function visTog(objname) {
	bild =  objname+"_img";
	if(document.getElementById(objname).style.display=="none") {
		document.getElementById(objname).style.display=''  ;
		document.getElementById(bild).src='images/stl_pilned.gif' ;
	} else {
		document.getElementById(objname).style.display="none";
		document.getElementById(bild).src='images/stl_pil.gif' ;
	}
}

function insertImage(imageName) {
	rte='content';
			var oRTE;
	if (document.all) {
		oRTE = frames[rte];
		
		//get current selected range
		var selection = oRTE.document.selection; 
		if (selection != null) {
			rng = selection.createRange();
		}
	} else {
		oRTE = document.getElementById(rte).contentWindow;
		
		//get currently selected range
		var selection = oRTE.getSelection();
		rng = selection.getRangeAt(selection.rangeCount - 1).cloneRange();
	}
	if (imageName.substr(0,7)!='http://'){
		imagePath = '/images/'+addFolderPrefix(imageName);
	} else {
		imagePath = imageName;
	}
	if ((imagePath != null) && (imagePath != "")) {
		oRTE.focus();
		oRTE.document.execCommand('InsertImage', false, imagePath);
		oRTE.focus();
		if (document.all) {
			//oRTE.scrollIntoView(true);
		}
	}
}

function mapClear(){
	if (document.images&&document.images['map_highlight']){
		document.images['map_highlight'].src='images/spacer.gif';
	}
}

function mapHighlight(c_name){
	if (document.images&&document.images['map_highlight']){
		document.images['map_highlight'].src='images/map/map_'+c_name+'.gif';
	}
}

function addText(str){
	rte='content';
			var oRTE;
	if (document.all) {
		oRTE = frames[rte];
		
		//get current selected range
		var selection = oRTE.document.selection; 
		if (selection != null) {
			rng = selection.createRange();
		}
	} else {
		oRTE = document.getElementById(rte).contentWindow;
		
		//get currently selected range
		var selection = oRTE.getSelection();
		rng = selection.getRangeAt(selection.rangeCount - 1).cloneRange();
	}
	oRTE.focus();
	//oRTE.document.body.insertAdjacentText('beforeEnd',str);
	var para = oRTE.document.createElement("P");
	//var thestr = oRTE.document.createTextNode(str);
	para.innerHTML=str;
	//para.appendChild(thestr);
	oRTE.document.body.appendChild(para);
	//oRTE.document.body.insertAdjacentText('beforebegin',str);
	oRTE.focus();
	if (document.all) {
		para.scrollIntoView(true);
	}
}

function insertDocument(docName) {
	rte='content';
			var oRTE;
	if (document.all) {
		oRTE = frames[rte];
		
		//get current selected range
		var selection = oRTE.document.selection; 
		if (selection != null) {
			rng = selection.createRange();
		}
	} else {
		oRTE = document.getElementById(rte).contentWindow;
		
		//get currently selected range
		var selection = oRTE.getSelection();
		rng = selection.getRangeAt(selection.rangeCount - 1).cloneRange();
	}
	
	docPath = '../docs/'+docName;
	imagePath = '../images/pdf-icon.gif';
	if ((docPath != null) && (docPath != "")) {
		oRTE.focus();
		oRTE.document.execCommand("CreateLink", false, docPath);
		oRTE.focus();
	}
}
function insertInterLink(InterPage) {
	if(InterPage.value != 0) {
			rte='content';
					var oRTE;
			if (document.all) {
				oRTE = frames[rte];
				
				//get current selected range
				var selection = oRTE.document.selection; 
				if (selection != null) {
					rng = selection.createRange();
				}
			} else {
				oRTE = document.getElementById(rte).contentWindow;
				
				//get currently selected range
				var selection = oRTE.getSelection();
				rng = selection.getRangeAt(selection.rangeCount - 1).cloneRange();
			}
	
			InterPage = '?page='+InterPage;

			//docPath = '../docs/'+docName;
			//imagePath = 'http://hurri.mine.nu/avfallsweb/images/pdf-icon.gif';
			if ((InterPage != null) && (InterPage != "")) {
				oRTE.focus();
				oRTE.document.execCommand("CreateLink", false, InterPage);
				oRTE.focus();
			}
	}
}

function insertDocLink(fileName) {
	if(fileName.value != 0) {
			rte='content';
					var oRTE;
			if (document.all) {
				oRTE = frames[rte];
				
				//get current selected range
				var selection = oRTE.document.selection; 
				if (selection != null) {
					rng = selection.createRange();
				}
			} else {
				oRTE = document.getElementById(rte).contentWindow;
				
				//get currently selected range
				var selection = oRTE.getSelection();
				rng = selection.getRangeAt(selection.rangeCount - 1).cloneRange();
			}
	
			if ((fileName != null) && (fileName != "")) {
				oRTE.focus();
				oRTE.document.execCommand("CreateLink", false, fileName);
				oRTE.focus();
			}
	}
}

/****************************************************************
* Change "page" in the protokoll form
* arguments:	no => string
* returns:		none
****************************************************************/
function goPage(no){
	document.getElementById("divFrmPage1").style.visibility='hidden';
	document.getElementById("divFrmPage2").style.visibility='hidden';
	document.getElementById("divFrmPage"+no).style.visibility='visible';
}
/****************************************************************
* Copy address data from matadress to rapportadress
* arguments:	no => string
* returns:		none
****************************************************************/
function copyAddress(targetName){
	if(document.forms['frm_enter_m_data']){
		myForm = document.forms['frm_enter_m_data'];
		myForm.RNamn.value = myForm.name.value;
		myForm.RGata.value = myForm.str_addr.value;
		myForm.RPostNr.value = myForm.zip.value;
		myForm.ROrt.value = myForm.city.value;
	}
}

/****************************************************************
* Sets address information from predefined dropdown in frm_order_adv form
* arguments:	name => string (name of the select to add extra field for)
*							obj => object (instance of select that field relates to)
* returns:		none
****************************************************************/
function setAddressDisplay(adtype,obj){
	form = document.forms['frm_order_adv'];
	targetName = adtype+'Adr_display';
	if (obj.value=="-") {
		return false;
	} else	if (obj.value!="0") {
		if (adtype=="F"){
			fd_data = form.FakXtra.value;
		} else {
			fd_data = form.LevXtra.value;
		}
		new_arr = Array();
		temp = fd_data.split("###");
		for (var foo in temp) {
			row = temp[foo].split("::");
			new_arr[row[0]] = row;
		} 
		row = new_arr[obj.value];
		
		text = '<div class="textLabel">Firma:</div><div class="default">'+row[1]+'&nbsp;</div>';
		if (row[2]!='') {
			text += '<div class="textLabel">Namn:</div><div class="default">'+row[2]+'&nbsp;</div>';
		}
		if (row[3]!='') {
			text += '<div class="textLabel">Gata:</div><div class="default">'+row[3]+'&nbsp;</div>';
		}
		if (row[4]!='') {
			text += '<div class="textLabel">Postnummer:</div><div class="default">'+row[4]+'&nbsp;</div>';
		}
		if (row[5]!='') {
			text += '<div class="textLabel">Ort:</div><div class="default">'+row[5]+'&nbsp;</div>';
		}
		if (row[6]!='') {
			text += '<div class="textLabel">Telefon:</div><div class="default">'+row[6]+'&nbsp;</div>';
		}
		if (row[7]!='') {
			text += '<div class="textLabel">Mobil:</div><div class="default">'+row[7]+'&nbsp;</div>';
		}
		if (row[8]!='') {
			text += '<div class="textLabel">Fax:</div><div class="default">'+row[8]+'&nbsp;</div>';
		}
		if (row[9]!='') {
			text += '<div class="textLabel">Email:</div><div class="default">'+row[9]+'&nbsp;</div>';
		}
		if (row[10]!='') {
			text += '<div class="textLabel">Övrigt:</div><div class="default"><input type="text" name="'+adtype+'"Ovrigt" maxlength="255" class="frmFld200">'+row[10]+'&nbsp;</textarea></div>';
		}
		text += '<br />';
		write2id(text,targetName);
		document.getElementById(adtype+"Adr_fields").style.visibility='hidden';
		document.getElementById(adtype+"Adr_fields").style.display='none';
		
		row = new_arr[obj.value];
	
		form[adtype+"Firma"].value=row[1];
		if (adtype=="F"){
			form[adtype+"Avd"].value=row[2];
		} else {
			form[adtype+"Namn"].value=row[2];
		}
		form[adtype+"Gata"].value=row[3];
		form[adtype+"PostNr"].value=row[4];
		form[adtype+"Ort"].value=row[5];
		form[adtype+"Telefon"].value=row[6];
		// form[adtype+"Ovrigt"].value=row[10];
		
	} else {
		write2id('',targetName);
		document.getElementById(adtype+"Adr_fields").style.visibility='visible';
		document.getElementById(adtype+"Adr_fields").style.display='block';
		/*
		form[adtype+"Firma"].value='';
		if (adtype=="F"){
			form[adtype+"Avd"].value='';
		} else {
			form[adtype+"Namn"].value='';
		}
		form[adtype+"Gata"].value='';
		form[adtype+"PostNr"].value='';
		form[adtype+"Ort"].value='';
		form[adtype+"Telefon"].value='';
		form[adtype+"Mobil"].value='';
		form[adtype+"Fax"].value='';
		form[adtype+"Email"].value='';
		form[adtype+"Ovrigt"].value='';
		*/
	}
}

/****************************************************************
* Writes to a valid document id such as a div or td etc.
* arguments:	text => string (HTML data to be written)
*							id => string (name of target)
* returns:		none
****************************************************************/
function write2id(text,id) {
	if (document.getElementById) {
		x = document.getElementById(id);
		x.innerHTML = '';
		x.innerHTML = text;
	} else if (document.all) {
		x = document.all[id];
		x.innerHTML = text;
	} else if (document.layers)	{
		x = document.layers[id];
		text2 = '<P CLASS="testclass">' + text + '</P>';
		x.document.open();
		x.document.write(text2);
		x.document.close();
	}
}


/****************************************************************
* Sets address information from predefined dropdown in frm_order_adv form
* arguments:	name => string (name of the select to add extra field for)
*							obj => object (instance of select that field relates to)
* returns:		none
****************************************************************/
function setAddressFields(adtype,obj){
	form = document.forms['frm_order_adv'];
	if (adtype=="F"){
		fd_data = form.FakXtra.value;
	} else {
		fd_data = form.LevXtra.value;
	}
	new_arr = Array();
	temp = fd_data.split("###");
	for (var foo in temp) {
		row = temp[foo].split("::");
		new_arr[row[0]] = row;
	} 
	row = new_arr[obj.value];
	
	form[adtype+"Firma"].value=row[1];
	if (adtype=="F"){
		form[adtype+"Avd"].value=row[2];
	} else {
		form[adtype+"Namn"].value=row[2];
	}
	form[adtype+"Gata"].value=row[3];
	form[adtype+"PostNr"].value=row[4];
	form[adtype+"Ort"].value=row[5];
	form[adtype+"Telefon"].value=row[6];
	form[adtype+"Mobil"].value=row[7];
	form[adtype+"Fax"].value=row[8];
	form[adtype+"Email"].value=row[9];
	form[adtype+"Ovrigt"].value=row[10];
	

}

function toggleSection(secName){
	if (document.forms['frm_order_adv']) {
		form = document.forms['frm_order_adv'];
		abool = form[secName+'IsSame'].checked;
	 	if (abool){
			document.getElementById(secName+"Adr_sec").style.visibility='hidden';
			document.getElementById(secName+"Adr_sec").style.display='none';
		} else {
			document.getElementById(secName+"Adr_sec").style.visibility='visible';
			document.getElementById(secName+"Adr_sec").style.display='block';
		}
	}
	if (document.forms['frm_enter_m_data']) {

		form = document.forms['frm_enter_m_data'];
		abool = form[secName+'IsSame'].checked;
		if (abool){
			document.getElementById(secName+"Adr_sec").style.visibility='hidden';
			document.getElementById(secName+"Adr_sec").style.display='none';
		} else {
			document.getElementById(secName+"Adr_sec").style.visibility='visible';
			document.getElementById(secName+"Adr_sec").style.display='block';
		}
	}
	return true;
}

/****************************************************************
* Displays extra field in the protokoll form
* arguments:	name => string (name of the select to add extra field for)
*							obj => object (instance of select that field relates to)
* returns:		none
****************************************************************/
function xtraField(name,obj){
	if (obj.value=="9"){
		document.getElementById(name+"_xtra").style.visibility='visible';
		document.getElementById(name+"_xtra").style.display='block';
	} else {
		document.getElementById(name+"_xtra").style.visibility='hidden';
		document.getElementById(name+"_xtra").style.display='none';
	}
}

/****************************************************************
* Switches action for form 
* globals:		document.frm_action => tracker for what action to take
* arguments:	form => object (instance of the form)
* returns:		boolean (if unsuccessful returns false)
****************************************************************/
function formSubmitTo(form) {
	switch (document.frm_action) {
		case "eEdit":
			form.action="?action=editOrder";
			return true;
		break;
		case "eSubmit":
			form.action="?action=editOrder&frm_edit=true";
			return true;
		break;
		case "foo":
			form.action="?action=insertOrderAdv";
			return true;
		break;
		case "foo2":
			form.action="?action=insertOrder";
			return true;
		break;
		case "foo3":
			form.action="?action=enterData&confirmed=1";
			return true;
		break;
		case "bar":
			form.action="?action=newOrder&frm_edit=true";
			return true;
		break;
		case "bar2":
			form.action="?action=enterData&frm_edit=true";
			return true;
		break;
		default:
			return false;
		break;
	}
}

/****************************************************************
* Displays the info floater
* arguments:	message => string (text to display in floater)
* returns:		none
****************************************************************/
function infoFloater(message) {
	floaterTemplate = '';
	floaterTemplate += '<div class="floater">';
	floaterTemplate += message;
	floaterTemplate +='</div>';

	if (message!="")
	{
		document.getElementById('divFloater').innerHTML = floaterTemplate;
		document.getElementById('divFloater').style.visibility='visible';
		if(typeof document.getElementById('divFloater') != "undefined") 
		{
			document.getElementById('divFloater').style.top= mouseY-30+"px";
			document.getElementById('divFloater').style.left= mouseX+10+"px";
		}
	}	
}

/****************************************************************
* Hides the info floater
* arguments:	none
* returns:		none
****************************************************************/
function hideFloater() {
	document.getElementById('divFloater').style.visibility='hidden';
}

