$(function(){
	var alltabs = [];
	//Sätter igång klickfunktionen för mouseover knapparna
	StartClick();
	on_startup();
	if_ajax_content(); //Sätter eventhandles på popup-rutorna
	activate_company_info_links();
	//Kontrollerar om num_pages är definerad eller inte
	if(window.num_pages){make_paging();	}

	//Validerar signupformuläret innan det skickas
	$('#submitbutton').click(function(){
		if(ValidateSignup()){
			return true;
		}
		else{
			return false;
		}
	});
	
	$("#chose_city").multiselect({selectedList: 4});
	$("#chose_bransch").multiselect({multiple:false, selectedList: 1});
	
	//Funktion för att visa/dölja nytt företags-fomuläret i registret
	$('#add_company').click(function(){
		$('#add_company_form').slideToggle('slow');
		
		//Hämtar in alla kommuner till "lägg till ditt företag i vårt register"
		$.post("/populateCity.php", 
				function(data) {
					$('#chose_city').html(data);
					$("#chose_city").multiselect("refresh");
				}, "html");
		
		//Hämtar in alla kategorier
		$.post("/populateBransch.php", 
				function(data) {
					$('#chose_bransch').html(data);
					$("#chose_bransch").multiselect("refresh");
				}, "html");
		
		

		return false;
	});
	
	

	
	//Funktion för att hantera län och kommun i formuläret
	$('.droplist_lan').bind("change", function(){
		get_sub_kommun($(this).val());
	});
	
	//Funktion för att sätta underkategorierna
	$('.maincat').bind("change", function(){ 
		get_sub_categories($(this).val());
	});
	
	//Funktion för att sätta underkategorierna
	$('.subcat').bind("change", function(){ 
		val = $(this).val();
		if(val != "0"){
			subname = $(".subcat option:selected").text();
			$('#toparrows').attr('id', 'toparrows2');
			$('#offert_cat').html(" för " + subname);
		}
		else{
			$('#toparrows').attr('id', 'toparrows');
		}
	});
	
	//Om man vill byta kategori
	$('#change_category').click(function(){
		$('#change_cat_div').slideToggle('slow');
		return false;
	});
	
	//Om man byter kommun/stad skall denna sättas i signup-formuläret
	$('.testklass').bind("change", function(){ 
		var kommun = $(this).val();
		$('#city').val(kommun);
		return false;
	});

	
	//Om man väljer en ny kategori byter vi ut existerande kategori i offerten
	$('.this_sub_cat').click(function(){
		var name = $(this).text();
		var this_id = $(this).attr("id");
		$('#offert_cat').text(" för " + name);
		$('#underkategori').val(this_id);
		$('#change_cat_div').slideToggle('slow');
		
		return false;
		
	});
	
	//Submitar företagets ansökan
	$('#company_submit').click(function(){
		if(validCompanyForm()){
			return true;
		}
		else{
			return false;
		}
	});
	
	//Knapp på företagsinfo sidan som ändrar företagsinfo
	$('.company_info_change').click(function(){
		$('#change_company_information').slideToggle('slow');
		$('#anslut_company_information').slideUp('slow');
		
		return false;
		
	});
	//Knapp på företagsinfo sidan som ansluter företaget.
	$('.company_info_anslut').click(function(){
		
		$('#anslut_company_information').slideToggle('slow');
		$('#change_company_information').slideUp('slow');

		return false;
		
	});

	//Visar avtalsvilkoren
	$('#show_terms').click(function(){
		//Ã–ppna dialogboxen hÃ¤r
		AvtalsVillkor();
		return false;
	});
	
	//Visar avtalsvilkoren för företagare
	$('#offert_link_terms').click(function(){
		//Ã–ppna dialogboxen hÃ¤r
		LeverantorsVillkor();
		return false;
	});
	
	$('a.btn-ok, #dialog-overlay, #dialog-box').click(function () {		
		$('#dialog-overlay, #dialog-box').hide();		
		return false;
	});
	
	$('a.btn-ok, #dialog-overlay2, #dialog-box2').click(function () {		
		$('#dialog-overlay2, #dialog-box2').hide();		
		return false;
	});
	
	//Öppnar Signupformen om man klickar på en länk
	$('.subcat_close').live("click",function(){

		//Plockar in texten pÃ¥ den knapp man tryckt för att anvÃ¤nda till rubrik
		var header = $(this).html();
		var id = $(this).attr("id");
		$('#offert_cat').html(header + "<input type='hidden' value='" + id.substr(2) + "' name='underkategori' /> ");
		
		//Tonar fram signupformen
		$('#signupform').fadeToggle("fast");
		//Rullar upp sidan till toppen om man är nedscrollad nÃ¤r man klicka pÃ¥ lÃ¤nkarna
		$("html, body").animate({ scrollTop: 50 }, "slow");
		
		//Döljer ev. Öppnade undermenyer
		$('#submenus').fadeToggle("fast");
		
		StopClick();
		return false;
	});
	
	//StÃ¤nger ner signupformulÃ¤ret
	$('#closesignup').click(function(){
		$('#signupform').fadeToggle("fast");
		StartClick();
		});
	
	//Funktion som stÃ¤nger underkategorilistan samt avmarkerar alla knapparna
	$('#close_sub').click(function(){
		$('#submenus').fadeToggle("fast");
		$('#menu1').attr("class", "mouse_over meny_links");
		$('#menu2').attr("class", "mouse_over meny_links");
		$('#menu3').attr("class", "mouse_over meny_links");
		$('#menu4').attr("class", "mouse_over meny_links");
		$('#menu5').attr("class", "mouse_over meny_links");
	});
	
	//Funktion förö att hämta ut underkategorierna
	function get_sub_categories(mainid){
		
		var url = window.location.pathname;
		$.post("/getMenuCategories.php", {id: mainid}, 
			function(data) {
				$('.subcat').html(data);
			}, "html");
		
	}
	
	//Funktion förö att hämta ut underkategorierna till kommunerna
	function get_sub_kommun(mainid){
	
		var url = window.location.pathname;
		$.post("/getCities.php", {c: mainid}, 
			function(data) {
				$('.offert_kommun').html(data);
			}, "html");
		
	}
	function activate_company_info_links()
	{
		$(".company_info_link").bind("click", function() {
			var id = $(this).attr("id");
			id = id.replace("link", "cd");
			$('#' + id).slideToggle('fast');
			return false;
		});
	}
	
	//Skapar en array med menyknapparna i och sÃ¤tter funktionalitet pÃ¥ dessa
	function StartClick(){
		$.each(['#menu1', '#menu2', '#menu3', '#menu4', '#menu5'], function(index, value){

			$(value).live("hover click",function(){
				if(!$('#submenus').is(":visible")){
					$('#submenus').fadeToggle("fast");
				}
				$('#submenu_content').html($('#menu'+index+'item').html());
			});
		});
	}
	
	//StÃ¤nger av funktionaliteten fÃ¶r menyknapparna medans signuprutan Ã¤r igÃ¥ng
	function StopClick(){
		$.each(['#menu1', '#menu2', '#menu3', '#menu4', '#menu5'], function(index, value){
			$('#menu'+index).die("hover click");
		});
	}
	
	//Skapar dialogboxen med avtalsvillkoren
	function AvtalsVillkor(){
		
		// get the screen height and width  
		var maskHeight = $(document).height();  
		var maskWidth = $(window).width();
		
		// calculate the values for center alignment
		var dialogTop =  150;  
		var dialogLeft = (maskWidth/2) - ($('#dialog-box').width()/2); 
		
		// assign values to the overlay and dialog box
		$('#dialog-overlay').css({height:maskHeight, width:maskWidth}).show();
		$('#dialog-box').css({top:dialogTop, left:dialogLeft}).show();
	}
	
	function LeverantorsVillkor(){
		
		// get the screen height and width  
		var maskHeight = $(document).height();  
		var maskWidth = $(window).width();
		
		// calculate the values for center alignment
		var dialogTop =  0;  
		var dialogLeft = 100; 
		
		// assign values to the overlay and dialog box
		$('#dialog-overlay2').css({height:maskHeight, width:maskWidth}).show();
		$('#dialog-box2').css({top:dialogTop, left:dialogLeft}).show();
	}
	//Validering av signup-formuläret
	function ValidateSignup(){

		var formvalid 	= "";
		
		$('#error_description').html("");
		$('#error_name').html("");
		$('#error_email').html("");
		$('#error_phone').html("");
		$('#error_zip').html("");
		$('#error_maincat').html("");
		$('#error_subcat').html("");
		
		
		var description = $('#offert_description').val();
		var name		= $('#offert_name').val();
		var email		= $('#offert_email').val();
		var phone		= $('#offert_phone').val();
		var maincat 	= $('.maincat').val();
		var subcat 		= $('.subcat').val();

		//Kontrollera även LÄNET här
		
		if(maincat == 0){
			$('#error_maincat').html("Måste väljas");
			formvalid = "maincat";
		}
		
		if(subcat == 0){
			$('#error_subcat').html("Måste väljas");
			formvalid = "subcat";
		}
		
		if($("#city").val()){
		var city		= $('#city').val();
		}else{
			var city		= $('.offert_kommun').val();
		}
		
		if(description.length < 25){
			$('#error_description').html("Beskrivningen bör vara minst 25 tecken.");
			formvalid = "beskrivning";
		}
		if(name.length < 3){
			$('#error_name').html("Måste fyllas i");
			formvalid = "namn";
		}
		if(!echeck(email)){
			$('#error_email').html("Måste fyllas i");
			formvalid = "email";
		}
		if(!phone_check(phone)){
			$('#error_phone').html("Måste fyllas i");
			formvalid = "phone";
		}
		if(city == 0  || isNaN(city)){
			$('#error_zip').html("Måste fyllas i");
			formvalid = "zip";
		}
		if(formvalid == ""){
			return true;
		}
	}
	//Validering av kontaktformuläret "För leverantörer"
	function validCompanyForm(){

		var formvalid = "";
		
		$('#company_name_valid').html("");
		$('#company_orgnr_valid').html("");
		$('#company_email_valid').html("");
		$('#company_contact_valid').html("");
		$('#company_phone_valid').html("");

		var name 	= $('#company_name').val();
		var orgnr 	= $('#company_orgnr').val();
		var email 	= $('#company_email').val();
		var contact	= $('#company_contact').val();
		var phone	= $('#company_phone').val();

		if(name.length < 2){
			$('#company_name_valid').html("Måste fyllas i");
			formvalid = "name";
		}
		if(orgnr.length < 10){
			$('#company_orgnr_valid').html("Måste fyllas i");
			formvalid = "org";
		}
		
		if(!echeck(email)){
			$('#company_email_valid').html("Måste fyllas i");
			formvalid = "email";
		}
		
		if(contact.length < 3){
			$('#company_contact_valid').html("Måste fyllas i");
			formvalid = "contact";
		}
		
		if(phone.length < 7){
			$('#company_phone_valid').html("Måste fyllas i");
			formvalid = "phone";
		}
		
		
		if(formvalid != ""){
			return false;
		}
		else{ 
			return true;
		}
	}
	function echeck(str)
	{
		var at="@"
		var dot="."
		var comma=","
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if(str.indexOf(comma)!=-1)
		{
			return false
		}
		if (str.indexOf(at)==-1){
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    return false
		 }

		 if ((lstr - ldot) < 3){
			return false;
		 }
		
 		 return true					
	}
	function phone_check(str)
	{
		var not_allowed = /[^0-9\s-]/;
		if (str.match(not_allowed) || str.length < 7) {
			return false;
		} else {
			return true;
		}
	}
	
	//Funktion för att ladda upp bilder i ändra företag eller lägg till nytt företag
	function uploadImage(){

		$.ajax({
			url:'/_inc/logoupload.php',
            secureuri:false,
            fileElementId:'image_upload',
            dataType: 'json',
            success: function (data, status)
            {        
                if(typeof(data.error) != 'undefined')
                {
                    if(data.error != '')
                    {
                        alert("fel: "+data.error);
                    }
                }
            },
            error: function (data, status, e)
            {
                alert("status: "+e);
            }
		});
	}
	
	function on_startup(){
		
		//Lägger på och tar bort texten på sökrutan
		$("#s").bind("blur", function() {
			if ($(this).val() == '')
				$(this).val("Sök på region eller företagsnamn");
		});
		$("#s").bind("click, focus", function() {
			if ($(this).val() == 'Sök på region eller företagsnamn')
				$(this).val('');
		});
		
	}
	
	//Funktion som skapar pagingen i registret
	function make_paging(){
		
		if (num_pages > 1)
		{		
			$(".pagination_link").bind("click", function() {
				var id = $(this).attr("id");
				var p = id.replace("pl-", "");
				
				var url = window.location.pathname;
				$.post("/getCompanies.php", {url: escape(url), p: p},
					function(data) {
						$("#register_foretagslista").html(data);
						activate_company_info_links();
						
						//Lägger på funktionalitet för att popup-rutorna skall bli dragbara även efter de genererats med ajax
						if_ajax_content();
						
					}, "html");
	
				$(".pagination_link_selected").removeClass("pagination_link_selected");
				$(this).addClass("pagination_link_selected");
				
				$('html, body').animate({scrollTop:0}, 'slow');
				return false;
			});
		}
		
	}
	//Funktioner som behövs till alla popup-rutor och även om dessa genereras med ajax.
	function if_ajax_content(){
		
		$(document).on('click', 'input[name=change_company]' , function(event){
			var offs = { top: event.pageY + 20 };
			var divid = this.id;
			var actual = this.id;
			divid = divid.replace('a', '');
			alltabs.push(divid);
			//Visar rätt div
			$('#' + divid).fadeIn('slow').offset(offs);
			jQuery.each(alltabs, function(){
				if("a"+this != actual){
					$('#' + this).fadeOut('slow');
				}
			});
			return false;
		});
		
		//Funktion som stänger den öppnade diven
		$(document).on('click', '.admin_close' , function(event){
			var closeid =this.id.replace('c', '');
			$('#' + closeid).fadeOut('slow');
			return false;
		});

		//Kollar efter knapptryckning om man vill ansluta företaget
		$(document).on('click', 'input[name=connect_company]' , function(event){
			
			var offs = { top: event.pageY + 20 };
			var form = $(this).parents('form:first');
			var company = $("input[name='foretag_namn']",form).val();
			var companyid = $("input[name='foretag_id']",form).val();
			var companyphone = $("input[name='foretag_telefon']",form).val();
			var companyorg = $("input[name='foretag_orgnr']",form).val();
			var companyemail = $("input[name='foretag_epost']",form).val();
			$('#anslut_foretag').fadeIn('slow').offset(offs);
			//Lägg in id´t ett hemligt fält, skicka sedan förfrågan med ajax till en funktion för att spara ner den eller maila förfrågan.
			$('#foretag_namn').val(company);
			$('#foretag_telefon').val(companyphone);
			$('#foretag_orgnr').val(companyorg);
			$('#foretag_epost').val(companyemail);
			$('#foretag_id').val(companyid);
		    return false; 
		});
		
		//Stänger anslut-företagsrutan
		$(document).on('click', '#anslut_close' , function(){
			$('#anslut_foretag').fadeOut('slow');
		});

		//Kontrollerar om du vill skicka in företagsändringarna
		$('input[name=change_submit]').live("click",function(){
			var form = $(this).parents('form:first');
			form.removeAttr('action');
			form.removeAttr('target');
			if($('textarea',form).val() == ""){
				alert("Du måste fylla i information om företaget");
				return false;
			}
			else{
				return true;
			}
		});
		
		//Funktion som kollar filuppladdning på "ändra företagssidan".
		$('#image_upload').bind("change", function(){ 
			var fileName = $(this).val();
		    $('#logo_uppload_holder').val(fileName);
		    uploadImage();
		});
		
		//Funktioner som hanterar bilduppladdning via ajax
		$('#logo_uploaded_header').ajaxStart(function(){
			$('#logo_uploaded_header').html("Laddar upp din valda bild.....");
	    }).ajaxComplete(function(){
	    	$('#logo_uploaded_header').html("Din bild är uppladdad");
	    });
		
		//Gör företagsändringar och anslut företag dragbara
		$('#anslut_foretag').draggable();
		$('.hidden_company_change').draggable();
		$('#signupform').draggable();
		
	}
	
	

});
