﻿//<script>
function babcrm_hideAllMenus(){
	var d=parent.document.getElementsByTagName("div")
	for(var i=0;i<d.length;i++){
		if(d[i].className.indexOf("menuTab")!=-1){
			d[i].style.visibility="hidden"
		}
	}
}

function tab_swap(oTable,elem){ //flikar
	var esr=elem
	var vCardAdmin=false
	if(document.getElementById("photoIfr")!=null){
		vCardAdmin=true
	}
	var t=oTable.rows[1]
	var tTop=oTable.rows[0]
	for(var i=0;i<t.cells.length;i++){
		t.cells[i].className="tab borderTop borderRight borderBottom"
		if(i==0){
			t.cells[i].className+=" borderLeft"
		}
		if(i==parseInt(elem.getAttribute("pos"),10)){
			t.cells[i].className+=" midTabDisabled"
		}
		tTop.cells[i].className="tab_firstRow "
		document.getElementById("tabContent"+oTable.getAttribute("formID")+new String(i+1)).style.display="none"
	}
	try{
		document.getElementById("imgPhotoVCARD").style.display="none"
	}
	catch(e){;}

	elem.className="selectedTab lightbg borderLeft borderRight"
	//show correct
	var selPos=elem.getAttribute("pos")
	document.getElementById("tabContent"+elem.getAttribute("partId")).style.display=""
	tTop.cells[selPos-1].className="tab_firstRow_selected lightbg tabsTopBg borderTop borderRight borderLeft"
	if(selPos!="1"){
		if(selPos=="2"){
			t.cells[0].className="borderLeft tab borderTop borderBottom"
		}
		else{
			t.cells[selPos-2].className="tab borderTop borderBottom"
		}
	}
	try{
		if(vCardAdmin) {
			if(esr.getAttribute("partId").indexOf("1")!=-1){		
				//alert("hej")
				document.getElementById("imgPhotoVCARD").style.display=""
			}
		}
		else{
				document.getElementById("imgPhotoVCARD").style.display=""
		}
	}
	catch(e){;}
	if(is.ie){
		var ch=document.getElementById("tabContent"+elem.getAttribute("partId")).all
		var ra
		for(var i=0;i<ch.length;i++){
			if(ch[i].getAttribute("type")=="text"){
				ch[i].focus()
				try{
				ra=ch[i].createTextRange()
				ra.moveEnd("word")
				ra.moveStart("sentence")
				ra.select()
				}
				catch(e){
					;
				}
				break;
			}
		}
	}
}

function saveActionId(inputVal) {
	var obj = d$('__CallbackId__')
	if (obj != null)
	{
		obj.value = inputVal
	}
}

function submitFromButton(objForm, skipCheck){
	var obf=objForm
	if(typeof skipCheck=="undefined"){
		if(checkFrm(obf)){
			document.body.style.cursor="wait"
			obf.submit()
		}
	}
	else{
		document.body.style.cursor="wait"
		obf.submit()
		
	}
}
function checkSubmitFromButton(objForm, objId){
	var obf=objForm
	return checkFrm(obf, false, objId)
}


function forms_onChange(elem,sForm){
	document.getElementById("OnChangeEnabled").value=elem.name
	showLoading(1)
	document.getElementById(sForm).submit()
	//submitFromButton(document.getElementById(sForm))
}
/*
function checkFrm(eForm) {
	checkFrm(eForm, false, '')
}

function checkFrm(eForm, useWarnings) {
	checkFrm(eForm, useWarnings, '')
}*/

function checkFrm(eForm, useWarnings, objId){
	
	/*
	var bUseWarnings=false
	if(typeof useWarnings!="undefined"){
		if(useWarnings==true){
			bUseWarnings=true
		}
	}
	*/
	var strObjectId = ''
	if(typeof objId!="undefined"){
		strObjectId = objId.toLowerCase()
	}
	if (document.getElementById('__CallbackId__') != null) {
		if (document.getElementById('__CallbackId__').value.length > 0) {
			strObjectId = document.getElementById('__CallbackId__').value.toLowerCase()
		}
	}
	
	var bSkipCheck
	var arrFormElems=eForm.elements
	var dateReturn=true
	
	var tabs = document.getElementsByTagName("TD");
	for(var i =0;i <tabs.length; i++) {
		if(typeof(tabs[i].partId) != 'undefined') {
			tabs[i].style.backgroundColor = '';
		}
	}
	var text = ''
	for(var i=0;i<arrFormElems.length;i++){
		//special for checking multiselect. value is in hidden field, but with not-alllowed filled (if required). Will not affect other hidden fields as they do not contain notAllowed
		var elem=arrFormElems[i]
		
		if(arrFormElems[i].type=="hidden"){
			bSkipCheck = false
			if(elem.getAttribute("requiredIf") != null) {
				var reqId = elem.getAttribute("requiredIf").toLowerCase()
				if (reqId.indexOf(strObjectId) == -1 || strObjectId.length == 0) {
					bSkipCheck = true
				}
			}
			if(bSkipCheck == false && arrFormElems[i].getAttribute("notAllowed")!=null){
				var elemMultiSelect=arrFormElems[i]
				var fieldName2=getName(elemMultiSelect)
				if(elemMultiSelect.getAttribute("notAllowed")==elemMultiSelect.value){
					text += fieldName2 + " är obligatorisk uppgift\n";
					setClassOfParent(elemMultiSelect, 'fieldTR2', false);						
				}
			}
		}
		if((arrFormElems[i].type!="button") && (arrFormElems[i].type!="hidden") && (arrFormElems[i].type!="submit") && (arrFormElems[i].tagName != 'FIELDSET')){
				
				var fieldName=getName(elem)
				var dReturn=true
				
				setClassOfParent(elem, 'fieldTR', true);
				
				//RIKSBYGGEN SPECIAL check for kundnummer, must be five digits
				if(elem.name=="nvarCustomerId"){ 
					if(elem.value!=""){
						if(elem.value.length!=5){
							text += "Kundnummer måste vara 5 siffror\n";
							setClassOfParent(elem, 'fieldTR2', false);
						}
						
						else{
							for(var u=0;u<elem.value.length;u++){
								if(isNaN(elem.value.charAt(u))){
									text += "Kundnummer får endast innehålla siffror\n";
									setClassOfParent(elem, 'fieldTR2', false);
								}
							}
						}
					}
				}
				//end of riksbyggen test

				if(elem.getAttribute("notAllowed")!=null && elem.type != "radio"){
					bSkipCheck = false
					if(elem.getAttribute("requiredIf") != null) {
						var reqId = elem.getAttribute("requiredIf").toLowerCase()
						if (reqId.indexOf(strObjectId) == -1 || strObjectId.length == 0) {
							bSkipCheck = true
						}
					}
					if(bSkipCheck == false && elem.getAttribute("notAllowed")==elem.value){
						text += fieldName + " är obligatorisk uppgift\n";
						setClassOfParent(elem, 'fieldTR2', false);						
					}
				}
				
				// regexp
				if(elem.getAttribute("validation-regexp")!=null){
					var valrexp = new RegExp(elem.getAttribute("validation-regexp"));
					if (elem.value != "") {
					if(!valrexp.test(elem.value)){
						
						text += fieldName + " har inte korrekt format\n";
						setClassOfParent(elem, 'fieldTR2', false);
					} 
					}					
				}

				if(elem.getAttribute("date")=='date'){
					if(elem.value!=""){
						if(iip_checkDate(elem)==false){
							text += fieldName + " datum måste vara på korrekt format\n";
							setClassOfParent(elem, 'fieldTR2', false);
						}
						
					}
				}
				if(elem.getAttribute("mail")=='true'){ //CHECK THIS 
					if(elem.value!=""){
						if(forms_isEmail(elem.value)==false){
							text += fieldName+" är inte en giltig epostadress\n";
							setClassOfParent(elem, 'fieldTR2', false);
						}
						
					}
				}
				
				if(elem.getAttribute("number")=='true'){
					if(elem.value!=""){
						if(isNaN(elem.value)){
							//check if it is a decimal set with ","
							var ev=elem.value
							if(ev.indexOf(",")!=-1){
								var tmpBeforeComma = ev.substring(0,ev.indexOf(","))
								var tmpAfterComma = ev.substring(ev.indexOf(",")+1)
								if(isNaN(tmpBeforeComma) || isNaN(tmpAfterComma)){
									text += fieldName+" måste vara en siffra\n";
									setClassOfParent(elem, 'fieldTR2', false);
								}
							}
							else if(ev.indexOf(".")!=-1){
								var tmpBeforeComma = ev.substring(0,ev.indexOf("."))
								var tmpAfterComma = ev.substring(ev.indexOf(".")+1)
								if(isNaN(tmpBeforeComma) || isNaN(tmpAfterComma)){
									text += fieldName+" måste vara en siffra\n";
									setClassOfParent(elem, 'fieldTR2', false);
								}
							}

							else{
								text += fieldName+" måste vara en siffra\n"
								setClassOfParent(elem, 'fieldTR2', false);
							}
						}			
					}
				}
				 
				if(elem.getAttribute("list")=="true"){
					for(var a=0;a<elem.options.length;a++){
						elem.options[a].selected=true
					}
				}
				
				if (elem.type == "radio" && elem.getAttribute("notAllowed")) {
					if(elem.getAttribute("requiredIf") != null) {
						var reqId = elem.getAttribute("requiredIf").toLowerCase()
						if (reqId.indexOf(strObjectId) == -1 || strObjectId.length == 0) {
							bSkipCheck = true
						}
					}
					var bIsChecked = elem.checked
					while ((i+1) < arrFormElems.length && arrFormElems[i+1].name == elem.name) {
						bIsChecked = bIsChecked || arrFormElems[i+1].checked
						i++
					}
					if (bSkipCheck == false && bIsChecked == false) {
						text += fieldName + " är obligatoriskt\n"
						setClassOfParent(elem, 'fieldTR2', false);
					}
				}

				if (elem.type == "checkbox" && elem.getAttribute("notAllowed")) {
				    if (elem.getAttribute("requiredIf") != null) {
				        var reqId = elem.getAttribute("requiredIf").toLowerCase()
				        if (reqId.indexOf(strObjectId) == -1) {
				            bSkipCheck = true
				        }
				    }
				    var bIsChecked = elem.checked
				    if (bSkipCheck == false && bIsChecked == false) {
				        text += fieldName + " är obligatoriskt\n"
				        setClassOfParent(elem, 'fieldTR2', false);
				    }
				}
			
		}
	}
	if (text.length != 0 ) {
		alert("Felaktig inmatning på följande:\n\n" + text);
		return false;
	}
	
	function setClassOfParent(e, c, reset) {
		var tagN=e
		var tagN2
		try{			
			while(tagN.className!="fieldTR" && tagN.className!='fieldTR2'){
				tagN=tagN.parentNode
			}
			tagN.className = c;
			tagN2 = tagN			
		}
		catch(e){}	
		try {
			while(typeof(tagN.tabid) == 'undefined'){
				tagN=tagN.parentNode
			}		
			if(!reset) {
				document.getElementById(tagN.tabid).style.backgroundColor = tagN2.currentStyle.backgroundColor
				document.getElementById(tagN.tabid).changed = true;
			}			
			
		} catch(e){}	
	}	
	function getName(e){
		try{
		var tagN=e
		while(tagN.className!="fieldTR" && tagN.className!='fieldTR2'){
			tagN=tagN.parentNode
		}
		return tagN.getAttribute("fieldName")
		//return tagN.firstChild.innerText
		}
		catch(e){
			return ""
		}	
	}
	showLoading(0)
	return true
}
function forms_isEmail(str) {
  var supported = 0;
  if (window.RegExp) {
    var tempStr = "a";
    var tempReg = new RegExp(tempStr);
    if (tempReg.test(tempStr)) supported = 1;
  }
  if (!supported) 
    return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
  var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
  var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,4})(\\]?)$");
  return (!r1.test(str) && r2.test(str));
}


function updateHidden(eDiv){
	var h=eDiv.firstChild
	h.value=""
	var chkBoxesPlusHidden=eDiv.getElementsByTagName("input")
	for(var i =0;i<chkBoxesPlusHidden.length;i++){
		if(chkBoxesPlusHidden[i].type=="checkbox"){
			if(chkBoxesPlusHidden[i].checked==true){
				h.value+=chkBoxesPlusHidden[i].value+","
			}
		}
	}
	h.value=h.value.substr(0,h.value.length-1)

}

function setCurrentFileUploadField(id){
	gCurrentFileUploadField=id
}

function setFileUploadData(id,fileName,width){
	if (gCurrentFileUploadField=='nvarPathToPic'){
		document.getElementById(gCurrentFileUploadField).value=id
		document.getElementById("special_PicWidth").value=width
	}
	else {
		document.getElementById(gCurrentFileUploadField).value=id
	}
	document.getElementById(gCurrentFileUploadField+"fileName").innerText=fileName
}
function openFileDialog(hdnId){
	strFilterFiles=""
	if(document.getElementById("frmMaklareDirekt2")!=null){
		strFilterFiles="?filter=true"
	}
	var dialogReturn
	dialogReturn=window.showModalDialog('/include/forms_fileDialog.aspx'+strFilterFiles,'fileDialog','dialogHeight:200px;dialogWidth:400px;dialogLeft')
	
	try{
		document.getElementById(hdnId).value=dialogReturn[0] //set the guid in hidden field returned by modal dialog. 
		document.getElementById(hdnId+"_fileName").value=dialogReturn[1] //set the guid in hidden field returned by modal dialog. 
		document.getElementById(hdnId+"_fileName_span").innerText=gPhraseDontForgetSave //set the guid in hidden field returned by modal dialog. 
	}
	catch(e){
		; //in case cancel, no retrunValue is sent. Do nothing
	}
	//FOR MAKLARE DIREKT: make visningsnamn required:
	try{
		if(document.getElementById("frmMaklareDirekt2")!=null){
			if(document.getElementById("file_fileName_span").innerHTML!=""){ //check if file has been added to TAB:New File
				document.getElementsByName("display")[0].setAttribute("notAllowed","")
			}
		}
	}
	catch(e){}
}

function getFileFromFileDB(fieldID){
	var x=window.showModalDialog('/Administration/Files','fileDialogFileDB','dialogHeight:500px;dialogWidth:700px;dialogLeft')
	try{
		x=x.split(";")
		// returns an array with {id, name}
		document.getElementById(fieldID).value= x[1]
		document.getElementById(fieldID+"_img").src="/file.aspx?id="+x[1]
		document.getElementById(fieldID+"_img").style.width="50px"
		document.getElementById(fieldID+"_img").style.height="50px"
	}
	catch(e){;}

}
/*
arrFileObjects=[];	
		function fileObj(){ //properties are set from opened window
			this.filename="";
			this.fileid="";
			this.filetype="";
			this.iWidth="";
			this.iHeight="";
			this.description="";
			this.storedfilename="";
			this.contenttype="";
			this.textImage="";
		}

		function createFileObj(){
			arrFileObjects[arrFileObjects.length]=new fileObj()
		}
		function getFile(){
			var oFileObj = arrFileObjects[0];
			document.getElementById("imageFileTD").innerText = oFileObj.filename;
			document.getElementById("imageFileTD").value = "/file.aspx?id=" + oFileObj.fileid;
			oWidth.value = oFileObj.iWidth;
			oHeight.value = oFileObj.iHeight;
			oWidth.setAttribute("intDiffer", (oFileObj.iWidth / oFileObj.iHeight));
			oHeight.setAttribute("intDiffer", (oFileObj.iHeight / oFileObj.iWidth));
			//alert(oWidth.getAttribute("intDiffer") + "\noHeight" + oHeight.getAttribute("intDiffer"));
			//document.getElementById("textImage").value=oFileObj.textImage
			document.getElementById("altText").value=oFileObj.filename
			arrFileObjects=[];
		}
*/
function init(){
	var d=document.getElementsByTagName("input")
	for(var i=0;i<d.length;i++){
		if(d[i].getAttribute("readonly")==true){
			d[i].style.backgroundColor="#eeeeee"
			d[i].style.color="#444444"
		}
	}
}

function babcrm_getLoggedInUser(inpId){
	document.getElementById(inpId).value=top.document.getElementById("topbarUsernameLink").getAttribute("ou") + "\\" + top.document.getElementById("topbarUsernameLink").getAttribute("cn")
	try{
		document.getElementById(inpId+"_display").value=top.document.getElementById("topbarUsernameLink").getElementsByTagName("span")[1].innerText.replace(" ","")
	}
	catch(e){}
}

//frm_User_displayName
function getLoggedInUser(inpId){
	document.getElementById(inpId).value=document.getElementById("frm_User_username").value
	document.getElementById(inpId+"_display").value=document.getElementById("frm_User_displayName").value
}

var gReturnUserFieldId=""

function addUserExecute(loginName,displayName,dName2){
	document.getElementById(gReturnUserFieldId).value=loginName
	try{
		document.getElementById(gReturnUserFieldId+"_display").value=dName2
	}
	catch(e){}
	try{
		document.getElementById(gReturnUserFieldId+"GUID").value=displayName
	}
	catch(e){}

	//send value back to gReturnUserFieldId ... 
}


function babcrm_getUser(fieldId) {
	var x = window.showModalDialog("/administration/Members/SelectMemberDlg.aspx", "Member", "dialogWidth:350px; dialogHeight:400px; center:yes;status:no;help:no;scroll:no;");

	if(x == undefined || x == 'undefined' || x == '') {
		return;
	}
	document.getElementById(fieldId).value=trim(x.split(";")[2]); //anvnamn
	try{
		document.getElementById(fieldId+"_display").value=x.split(";")[1] //displayname
	}
	catch(e){}
	try{
		document.getElementById(fieldId+"GUID").value=x.split(";")[0] //guid
	}
	catch(e){}
}
function trim(str)
{
   return str.replace(/^\s*|\s*$/g,"");
}


function babcrm_getGroup(fieldId) {
	var x = window.showModalDialog("/administration/Groups/SelectGroupDlg.aspx", "Group", "dialogWidth:350px; dialogHeight:400px; center:yes;status:no;help:no;scroll:no;");
	if(x == undefined || x == 'undefined' || x == '') {
		return;
	}
	document.getElementById(fieldId).value=x.split(";")[2];
	try{
		document.getElementById(fieldId+"_display").value=x.split(";")[1]
	}
	catch(e){}
	try{
		document.getElementById(fieldId+"GUID").value=x.split(";")[0]
	}
	catch(e){}
}

function forms_getGroup(fieldId) {
	var x = window.showModalDialog("/administration/Groups/SelectGroupDlg.aspx", "Group", "dialogWidth:350px; dialogHeight:400px; center:yes;status:no;help:no;scroll:no;");
	if(x == undefined || x == 'undefined' || x == '') {
		return;
	}
	document.getElementById(fieldId).value=x.split(";")[0];
	try{
		document.getElementById(fieldId+"_display").value=x.split(";")[1]
	}
	catch(e){}
}

function showInfoDiv(strText){
	removeInfoDiv()
	var inf=document.getElementById("infoRuta")
	inf.style.left=(event.clientX+ document.body.scrollLeft)+"px"
	inf.style.top=(event.clientY+ document.body.scrollTop)+"px"
	inf.document.getElementById("infoRutaText").innerText=strText
	inf.style.visibility="visible"
	inf.style.zIndex=100	
	inf.style.width="250px"
	latestInfoDiv=document.body.appendChild(inf.cloneNode(true))
	inf.style.visibility="hidden"
	}
var latestInfoDiv=null
function removeInfoDiv(){
	try{
		document.body.removeChild(latestInfoDiv)
	}
	catch(e){}
}