// STYLING FILE INPUTS 1.0 | Shaun Inman <http://www.shauninman.com/> | 2007-09-07
if (!window.SI) { var SI = {}; };
SI.Files =
{
	htmlClass : 'SI-FILES-STYLIZED',
	fileClass : 'file',
	wrapClass : 'cabinet',
	
	fini : false,
	able : false,
	init : function()
	{
		this.fini = true;
		
		var ie = 0 //@cc_on + @_jscript_version
		if (window.opera || (ie && ie < 5.5) || !document.getElementsByTagName) { return; } // no support for opacity or the DOM
		this.able = true;
		
		var html = document.getElementsByTagName('html')[0];
		html.className += (html.className != '' ? ' ' : '') + this.htmlClass;
	},
	
	stylize : function(elem)
	{
		if (!this.fini) { this.init(); };
		if (!this.able) { return; };
		
		elem.parentNode.file = elem;
		elem.parentNode.onmousemove = function(e)
		{
			if (typeof e == 'undefined') e = window.event;
			if (typeof e.pageY == 'undefined' &&  typeof e.clientX == 'number' && document.documentElement)
			{
				e.pageX = e.clientX + document.documentElement.scrollLeft;
				e.pageY = e.clientY + document.documentElement.scrollTop;
			};

			var ox = oy = 0;
			var elem = this;
			if (elem.offsetParent)
			{
				ox = elem.offsetLeft;
				oy = elem.offsetTop;
				while (elem = elem.offsetParent)
				{
					ox += elem.offsetLeft;
					oy += elem.offsetTop;
				};
			};

			var x = e.pageX - ox;
			var y = e.pageY - oy;
			var w = this.file.offsetWidth;
			var h = this.file.offsetHeight;

			/// ADDED CODE START ------------------
				// Fix for IE7+, otherwise the control can get dragged outside despite overflow: hidden;
				if (x < 0 || y < 0 || x > this.offsetWidth || y > this.offsetHeight) { 
					x = 0; y = 0; h = 0; w = 30;
				}
			/// ADDED CODE END ---------------

			this.file.style.top		= y - (h / 2)  + 'px';
			this.file.style.left	= x - (w - 30) + 'px';
		};
	},
	
	stylizeById : function(id)
	{
		this.stylize(document.getElementById(id));
	},
	
	stylizeAll : function()
	{
		if (!this.fini) { this.init(); };
		if (!this.able) { return; };
		
		var inputs = document.getElementsByTagName('input');
		for (var i = 0; i < inputs.length; i++)
		{
			var input = inputs[i];
			if (input.type == 'file' && input.className.indexOf(this.fileClass) != -1 && input.parentNode.className.indexOf(this.wrapClass) != -1)
			{
				this.stylize(input);
			};
		};
	}
};
/********************** SETUP *************************/
/*                        (i * -3)
4 - 1 (0 * 4) + 1    => 1 -0 => 0
8 - 5 (1 * 4) + 1    => 2 -3 => 5-3=2
12 - 9 (2 * 4) + 1   => 3 -6 => 9-6=3
16 - 13 ( 3 * 4) + 1 => 4 -9
0,25x + 0,75
*/
var hatogbriller = 1;
var loadInitialItems = function(type, args)
{
	var start = args[0];
	var last = args[1]; 
	// fetch twice the number for caching. images are create once.
	//alert("start:"+ (start * 0.25 + 0.75));
	//makeRequest(this, 'getProfiles.asp', (start * 0.25 + 0.75), 0, 0);
	makeRequest(this, 'getProfiles.asp', "Amsterdam", start, hatogbriller++);
};

var loadNextItems = function(type, args)
{
	var start = args[0];
	var last = args[1];
	var alreadyCached = args[2];
	if(!alreadyCached) {

			makeRequest(this, 'getProfiles.asp', "Amsterdam", start, hatogbriller++);
//			alert("l:"+ last+";start:"+ start);
		//makeRequest(this, 'getProfiles.asp', "Amsterdam", start, (last-start+1) * 2);
	}
};

var loadPrevItems = function(type, args) {
	var start = args[0];
	var last = args[1]; 
	var alreadyCached = args[2];
 
	if(!alreadyCached) {
		//makeRequest(this, 'getProfiles.asp', "Amsterdam", start, (last-start+1) * 2);
			makeRequest(this, 'getProfiles.asp', "Amsterdam", start, --hatogbriller);
	}
};

var handlePrevButtonState = function(type, args)
{
	var enabling = args[0];
	var leftImage = args[1];
	if(enabling) {
		leftImage.src = "/images/arrowleft.png";
	} else {
		leftImage.src = "/images/arrowleft_dis.png";
	}
};

var handleNextButtonState = function(type, args)
{
	var enabling = args[0];
	var rightImage = args[1];
	if(enabling) {
		rightImage.src = "/images/arrowright.png";
	} else {
		rightImage.src = "/images/arrowright_dis.png";
	}
};

var carousel; // for ease of debugging; globals generally not a good idea
var frontpageLoad = function(e) 
{
	var maxSize = this;
	carousel = new YAHOO.extension.Carousel("dhtml-carousel", 
		{
			size: maxSize,
			numVisible:        4,
			animationSpeed:    0.25,
			scrollInc:         4,
			navMargin:         0,
			prevElement:     "left-arrow",
			nextElement:     "right-arrow",
			loadInitHandler:   loadInitialItems,
			loadNextHandler:   loadNextItems,
			loadPrevHandler:   loadPrevItems,
			prevButtonStateHandler: handlePrevButtonState,
			nextButtonStateHandler: handleNextButtonState
		}
	);
};
var handleSuccess = function(callbackResponse)
{
	var start = callbackResponse.argument[0];
	var numResults = callbackResponse.argument[1];
	var carousel = callbackResponse.argument[2];
	
	if(callbackResponse.responseText !== undefined)
	{
		var theTrip = eval('('+ callbackResponse.responseText +')');

		for(var i=0; i< theTrip.ResultSet.totalResultsReturned; i++)
		{
			var result = theTrip.ResultSet.Result[i];
			carousel.addItem(start+i, fmtTripInnerHTML(result));
		}
	 }
};
var fmtTripInnerHTML = function(result)
{
		var q = '<div class="profile_box"><a href="/profil.asp?id='+ result.ID +'" title="'+ result.Name +'"><div class="profile_boxinner" onclick="javascript:document.location =\'/profil.asp?id='+ result.ID +'\';"><div class="profile_boxinner2" onmouseover="this.style.border = \'2px solid #9CC93A\';" onmouseout="this.style.border = \'2px solid #cccccc\'">';
		
		if (parseInt(result.Z) == 1)
			q += '<div class="zeen-slider-image"></div>';

		q += '<img src="'+ result.Image +'" height="236" border="0" alt="'+ result.Name +'" /></div></div></a></div>';
		return q;
};

var handleFailure = function(o)
{
	 var result = o.status + " " + o.statusText;
	 alert("Der opstod en fejl ved indlæsning af billeder.\n\nTransaction failed.  The error is: " + result);
};
var makeRequest = function(carousel, url, query, start, numResults)
{
	var params = "?start="+ numResults;
	var callback =
	{
		success: handleSuccess,
		failure: handleFailure,
		argument: [start, numResults, carousel]
	};

	YAHOO.util.Connect.asyncRequest("GET", url + params, callback, null);
};

function echeck(str,nomsg)
{
		if (typeof nomsg != "number")
			nomsg = 0;
		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   if (nomsg == 0)
		   alert("Du har indtastet en ugyldig e-mail adresse.");
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   if (nomsg == 0)
		   alert("Du har indtastet en ugyldig e-mail adresse.");
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		   if (nomsg == 0)
		   alert("Du har indtastet en ugyldig e-mail adresse.");
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		   if (nomsg == 0)
		   alert("Du har indtastet en ugyldig e-mail adresse.");
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		   if (nomsg == 0)
		   alert("Du har indtastet en ugyldig e-mail adresse.");
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		   if (nomsg == 0)
		   alert("Du har indtastet en ugyldig e-mail adresse.");
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		   if (nomsg == 0)
		   alert("Du har indtastet en ugyldig e-mail adresse.");
		    return false
		 }

 		 return true					
}

function validateCreateProfile(s)
{
	if (!s.terms.checked)
	{
		alert("Du skal godkende handelsbetingelserne.");
		return false;
	}
	if (s.fname.value.length <= 1)
	{
		alert("Du skal indtaste et fornavn.");
		s.fname.focus();
		return false;
	}
	if (s.lname.value.length == 0)
	{
		alert("Du skal indtaste et efternavn.");
		s.lname.focus();
		return false;
	}
	if (s.mail.value == "")
	{
		alert("Du skal indtaste din e-mail adresse.");
		s.mail.focus();
		return false;
	}
	if (echeck(s.mail.value) == false)
	{
		s.mail.focus();
		return false;
	}
	if (s.mail.value != s.mail2.value)
	{
		alert("Du skal indtaste ens e-mail adresser.");
		s.mail2.focus();
		return false;
	}
	if (s.pass.value.length == 0)
	{
		alert("Du skal indtaste et kodeord."),
		s.pass.focus();
		return false;
	}
	if (s.pass.value != s.pass2.value)
	{
		alert("Du skal indtaste ens kodeord.");
		s.pass.value = '';
		s.pass2.value = '';
		s.pass.focus();
		return false;
	}
	if (s.address.value < 4)
	{
		alert("Du skal indtaste din addresse.");
		s.address.focus();
		return false;
	}
	if (s.zip.value.length == 0)
	{
		alert("Du skal indtaste dit postnummer.");
		s.zip.focus();
		return false;
	}
	if (s.city.value.length == 0)
	{
		alert("Du skal indtaste navnet på den by du bor i.");
		s.city.focus();
		return false;
	}
	if (s.phone.value.length == 0)
	{
		alert("Du skal indtaste dit telefonnummer eller dit mobilnummer.");
		s.phone.focus();
		return false;
	}

	return true;
}

function validateCreateAgent(s)
{
	if (!s.terms.checked)
	{
		alert("Du skal godkende handelsbetingelserne");
		return false;
	}
	if (s.company.value.length <= 1)
	{
		alert("Du skal indtaste navnet på dit firma.");
		s.fname.focus();
		return false;
	}
	if (s.title.value.length <= 1)
	{
		alert("Du skal indtaste din titel eller arbejdsfunktion.");
		s.fname.focus();
		return false;
	}
	if (s.fname.value.length <= 1)
	{
		alert("Du skal indtaste et fornavn.");
		s.fname.focus();
		return false;
	}
	if (s.lname.value.length == 0)
	{
		alert("Du skal indtaste et efternavn.");
		s.lname.focus();
		return false;
	}
	if (s.mail.value == "")
	{
		alert("Du skal indtaste din e-mail adresse.");
		s.mail.focus();
		return false;
	}
	if (echeck(s.mail.value) == false)
	{
		s.mail.focus();
		return false;
	}
	if (s.mail.value != s.mail2.value)
	{
		alert("Du skal indtaste ens e-mail adresser.");
		s.mail2.focus();
		return false;
	}
	if (s.pass.value.length == 0)
	{
		alert("Du skal indtaste et kodeord."),
		s.pass.focus();
		return false;
	}
	if (s.pass.value != s.pass2.value)
	{
		alert("Du skal indtaste ens kodeord.");
		s.pass.value = '';
		s.pass2.value = '';
		s.pass.focus();
		return false;
	}
	if (s.address.value < 4)
	{
		alert("Du skal indtaste firmaets addresse.");
		s.address.focus();
		return false;
	}
	if (s.zip.value.length == 0)
	{
		alert("Du skal indtaste et postnummer.");
		s.zip.focus();
		return false;
	}
	if (s.city.value.length == 0)
	{
		alert("Du skal indtaste navnet på den by firmaet ligger i.");
		s.city.focus();
		return false;
	}
	if (s.phone.value.length == 0)
	{
		alert("Du skal indtaste jeres telefonnummer eller dit mobilnummer.");
		s.phone.focus();
		return false;
	}

	return true;
}

function validateUpdateAgent(s)
{
	if (s.company.value.length <= 1)
	{
		alert("Du skal indtaste navnet på dit firma.");
		s.fname.focus();
		return false;
	}
	if (s.title.value.length <= 1)
	{
		alert("Du skal indtaste din titel eller arbejdsfunktion.");
		s.fname.focus();
		return false;
	}
	if (s.fname.value.length <= 1)
	{
		alert("Du skal indtaste et fornavn.");
		s.fname.focus();
		return false;
	}
	if (s.lname.value.length == 0)
	{
		alert("Du skal indtaste et efternavn.");
		s.lname.focus();
		return false;
	}
	if (s.mail.value == "")
	{
		alert("Du skal indtaste din e-mail adresse.");
		s.mail.focus();
		return false;
	}
	if (echeck(s.mail.value) == false)
	{
		s.mail.focus();
		return false;
	}
	if (s.address.value < 4)
	{
		alert("Du skal indtaste firmaets addresse.");
		s.address.focus();
		return false;
	}
	if (s.zip.value.length == 0)
	{
		alert("Du skal indtaste et postnummer.");
		s.zip.focus();
		return false;
	}
	if (s.city.value.length == 0)
	{
		alert("Du skal indtaste navnet på den by firmaet ligger i.");
		s.city.focus();
		return false;
	}
	if (s.phone.value.length == 0)
	{
		alert("Du skal indtaste jeres telefonnummer eller dit mobilnummer.");
		s.phone.focus();
		return false;
	}

	return true;
}
function validateImageUpload(s)
{
	var val = s.file.value;
	if (val.length > 0)
	{
		if (val.toLowerCase().substring(val.length - 4) == ".jpg" || val.toLowerCase().substring(val.length - 5) == ".jpeg")
		{
			document.getElementById("errMsg").style.display = "none";
			document.getElementById("uploadingMsg").style.display = "block";
			document.getElementById("uploadImage").style.display = "none";
			s.submit();
		}
		else
		{
			document.getElementById("errMsg").style.display = "block";
		}
	}
}
function validateCheckCode(s)
{
	if (s.code.value.length == 0)
	{
		alert("Du skal indtaste en kode.");
		return;
	}
	s.submit();
}

function setBtnDisabled(btn, v)
{
	document.getElementById(btn).disabled = !v;
}

var selImg, imgs;

function setProfileImage(n, img)
{
	selImg = n;
	document.getElementById("profileimage").src = img;
}
function gotoPrevious()
{
	if (selImg == 0)
	{
		selImg = imgs.Images.length - 1;
	}
	else
	{
		selImg--;
	}
	setProfileImage(selImg, imgs.Images[selImg]);
}
function gotoNext()
{
	if (selImg == imgs.Images.length - 1)
	{
		selImg = 0
	}
	else
	{
		selImg++;
	}
	setProfileImage(selImg, imgs.Images[selImg]);
}
function setBoxOver(s)
{
	s.style.border = '2px solid green';
}
function setBoxOut(s)
{
	s.style.border = '2px solid #CCCCCC';
}
function doDeleteImage(u)
{
	if (confirm("Ønsker du at slette det valgte profilbillede?"))
	{
		location.href = u;
	}
}
var currentDelta = "";
function showDelta(n)
{
	document.getElementById("delta"+ n).style.display = "block";
	if (currentDelta.length > 0 && currentDelta != "delta"+ n)
	{
		document.getElementById(currentDelta).style.display = "none";
	}
	currentDelta = "delta"+ n;
}
