$(document).ready(function(){

/*- suckerfish style dropdown for ie6 ----------------------------------------------------------------------------------*/
	
	$('.suckerfish li').hover(function() {
		$(this).addClass('hover').find('ul:first').css('visibility', 'visible');
	}, function() {
		$(this).removeClass('hover').find('ul:first').css('visibility', 'hidden');
	});
	
		
	$('.slidefish li').hover(function(){
		$(this).addClass('hover').find('ul:first').hide().css('visibility', 'visible').css('z-index', '9999').slideDown(300);
	}, function() {
		$(this).removeClass('hover').find('ul:first').slideUp(300);
	});

	$('.fadefish li').hover(function(){
		$(this).addClass('hover').find('ul:first').hide().css('visibility', 'visible').css('z-index', '9999').fadeIn(300);
	}, function() {
		$(this).removeClass('hover').find('ul:first').fadeOut(300);
	});


/*- restrict textfield to numbers  ------------------------------------------------*/

	$(function(event){
		$('input.numbersonly').live('keyup', function(event){
			$('.numbersOnly_errorMsg').remove();
			errormsg = "Syötä vain numeroita";
			var val = $(this).val();
			
			if(!isNumeric(val)){
				val = val.substring(0, val.length-1);
				$(this).val(val);
				
				var offset = $(this).offset();
				var left = offset.left;
				var top = offset.top;
				var h = $(this).height();
				
				$(this).after('<div class="numbersOnly_errorMsg" style="left:'+left+'px;top:'+(top-h-8)+'px;">'+errormsg+'</div>');
				
				$('*').click(function(){
					$('.numbersOnly_errorMsg').hide();
				});		
			}
		});
	});

//- tabswitcher --------------------------------------------------------------------------------------

	$(function(){
		var selector = ':first';
		$('.iwtabSwitch').each(function(){
			if(!$(this).is('.disableMemory') && window.location.hash && $(this).find('[href='+window.location.hash+']').length){
				selector = '[href='+window.location.hash+']';
			}
			else if($(this).find('a.default').length){
				selector = '.default:first';	
			}	
			
			$('.iwtabSwitch a').live('click', function(event){		
				var rel = $(this).parents('ul').find('[rel]:first').attr('rel');
				var index = $(this).parents('ul:first').find('li a').index(this);
				
				if($(this).parents('li:first').is('.active') || $(this).parents('.iwtabSwitch:first').find('.active').length == 0){
					speed = 0;
				}
				else{
					speed = 250;
				}
				
				$(rel).find('.iwtab').removeClass('selectedTab').fadeOut(speed, function(){
					if($(rel).find('.iwtab:visible').length == 0){	
						$(rel).find('.iwtab:eq('+index+')').fadeIn(speed).addClass('selectedTab');
					}
				});
				
				
				$(this).parents('.iwtabSwitch:first').find('.active').removeClass('active');
				$(this).parents('li:first').addClass('active');
				
			}).filter('.iwtabSwitch a'+selector).click();	
			
		});
	});



// check multiple checkboxes ---------------------- 

	$('.checkAllBoxes').live('click', function(){
		$(this).toggleClass('checked');
		if($(this).is('.checked')){
			$(this).parents('.multicheckArea:first').find('input:checkbox').attr('checked', true).addClass('checked');
		}	
		else{
			$(this).parents('.multicheckArea:first').find('input:checkbox').attr('checked', false).removeClass('checked');
		}	
	});

});

/*- set body class based on browser -------------------------------------------------------------------*/
	
function browserBody(){
	var browser = navigator.userAgent.toLowerCase(); 
	
	if(browser.indexOf('opera') != -1){
		$('.mainbody').addClass('bodyOpera');
	}
	else if(browser.indexOf('firefox/2') != -1){
		$('.mainbody').addClass('bodyFirefox2');
	}
	else if(browser.indexOf('firefox/3.0') != -1){
		$('.mainbody').addClass('bodyFirefox30');
	}
	else if(browser.indexOf('firefox') != -1){
		$('.mainbody').addClass('bodyFirefox');
	}
	else if(browser.indexOf('msie 6') != -1){
		$('.mainbody').addClass('bodyIE6');
	}
	else if(browser.indexOf('msie 7') != -1){
		$('.mainbody').addClass('bodyIE7');
	}
	else if(browser.indexOf('msie 8') != -1){
		$('.mainbody').addClass('bodyIE8');
	}
	else if(browser.indexOf('safari') != -1){
		$('.mainbody').addClass('bodySafari');
	}
}	

/*--------------------------------------------------------------------*/

function browser(){
	var browser = navigator.userAgent.toLowerCase(); 
	if(browser.indexOf('opera') != -1){
		return 'opera';
	}
	else if(browser.indexOf('firefox') != -1){
		return 'firefox';
	}
	else if(browser.indexOf('msie 6') != -1){
		return 'ie6';
	}
	else if(browser.indexOf('msie 7') != -1){
		return 'ie7';
	}
	else if(browser.indexOf('msie 8') != -1){
		return 'ie8';
	}
	else if(browser.indexOf('safari') != -1){
		return 'safari';
	}
}

/* print page content ------------------------------------------------------------------------------- */

function printcontent(deptid)
{
	if(!deptid){
		var c = $('div.iw_templatecontent:first').parents('div:first').attr('class');
		var deptid = c.replace('iw_content_', '');
	}
	
	window.open('/?print=1&deptid='+deptid,'Print','width=640,height=480,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=no');
}

/*- add to favorites (IE/FF only)  ------------------------------------------------*/

	function bookmark()
	{
		title = document.title; 
  		url = location.href;
  	
		if (navigator.userAgent.indexOf("Firefox")!=-1){
			window.sidebar.addPanel(title, url, '');
		}
		else if(navigator.userAgent.indexOf("MSIE")!=-1){
			window.external.AddFavorite(url, title); 	
		}
		else{
			alert("Your browser doesn't support this feature");
		}
		
	}

/* numeric validation ---------------------- */

function isNumeric(sText)
{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;
	 
	for (i = 0; i < sText.length && IsNumber == true; i++){ 
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) 
		{
			IsNumber = false;
		}
	}
	return IsNumber;
}

// round corners for element ---------------------------------------------------------------
// requires "/includes/jquery/curvycorners.js" ---------------------------------------------


	function corners(tl,tr,bl,br, elem)
	{
		if($(elem).length){
			var settings={
			  tl: { radius: tl },
			  tr: { radius: tr },
			  bl: { radius: bl },
			  br: { radius: br },
			  antiAlias: true
			}
			curvyCorners(settings, elem);	
		}
	}

//--------------------------------------------------------------------------------------
	
	jQuery.fn.corners = function(options){          
		var t = this;
		var defs = {
			tl:0,
			tr:0,
			bl:0,
			br:0
		};
		
		var options = $.extend(defs, options);
		var uid = 'uid_' + Math.floor(Math.random()*99) + new Date().getTime();
			
		$.getScript('/includes/jquery/curvycorners.js', function(){
			t.each(function(){ 
				$(this).addClass(uid);
			});
			
			if($('.'+uid).length){
				var settings={
					tl: { radius: options.tl },
					tr: { radius: options.tr },
					bl: { radius: options.bl },
					br: { radius: options.br },
					antiAlias: true
				}
				curvyCorners(settings, '.'+uid);	
			}
		});
	}

//--------------------------------------------------------------------------------------

	jQuery.fn.curvycorners = function(options){          
		var t = this;
		var defs = {
			tl:0,
			tr:0,
			bl:0,
			br:0
		};
		
		var options = $.extend(defs, options);
		var uid = 'uid_' + Math.floor(Math.random()*99) + new Date().getTime();
			
		this.each(function(){ 
			$(this).addClass(uid);
		});
		
		if($('.'+uid).length){
			var settings={
				tl: { radius: options.tl },
				tr: { radius: options.tr },
				bl: { radius: options.bl },
				br: { radius: options.br },
				antiAlias: true
			}
			curvyCorners(settings, '.'+uid);	
		}	
	}

//--------------------------------------------------------------------------------------

	function getExtension(path){
		var parts = path.split('.');
		return parts[parts.length-1];
	}

//--------------------------------------------------------------------------------------
	
	function isimage(path)
	{
		var ext = getExtension(path);
		if(ext == 'jpg' || ext == 'jpeg' || ext == 'gif' || ext == 'png' || ext == 'bmp'){
			return true
		}
		return false
	}

//--------------------------------------------------------------------------------------

	function querystringToArray(str){
		var arr = new Array();		
		if(!empty(str)){
			parts = str.split(',');
			for(i in parts){
				vars = parts[i].split('=');
				arr[vars[0]] = vars[1];
			}
		}
		return arr;
	}

//- check for empty string ---------------------------------------------------------------------------------
	
	function empty(str)
	{
		if(str.replace(/\s/g,"") == ""){
			return true;
		}
		return false;
	}

//- toggle hint text in elements ---------------------------------------------------------------------------------

	jQuery.fn.HintText = function(str){          
		if(str){
			this.val(str);
		}else{
			str = this.val();
		}
			
		this.each(function(){ 
			$(this).addClass('hint'); 
			
			$(this).focus(function(){ 
				if($(this).val() == str){
					$(this).val('').removeClass('hint'); 
				}
			}); 
			
			$(this).blur(function(){ 
				if(empty($(this).val())){ 
					$(this).val(str).addClass('hint'); 
				} 
			});
		}); 
	}

//----------------------------------------------------------------------------------

	function isValidEmail(str){
		var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
		return reg.test(str)	
	}

//----------------------------------------------------------------------------------

	function request(name){
		name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
		var regexS = "[\\?&]"+name+"=([^&#]*)";
		var regex = new RegExp( regexS );
		var results = regex.exec( window.location.href );
		if(results == null){
			return "";
		}else{
			return results[1];
		}
	}

//----------------------------------------------------------------------------------

	function in_array(str, arr){
		for(i in arr){
			if(arr[i] == str){
				return true;
			}
		}
		return false;
	}

//----------------------------------------------------------------------------------
	
	function removeLineBreaks(str){
		return str.replace(/(\r\n|\n|\r)/gm,'');
	}

//----------------------------------------------------------------------------------

	function ltrim(str){
		var i = 0;
		while(i < str.length && empty(str[i])){	
			i++; 
		}
		return str.substring(i, str.length);
	}

//----------------------------------------------------------------------------------
	
//-------------------------------------------------------
// printview-functiolla tulostaa ko. hetkellä näkyvää sisältöä elementin selectorin perusteella, 
// tulostaa myös postbackin/ajaxin takana olevaa stuffia. Oletuksena tulostaa contentpanelin sisällön.

	function printview(selector){
		if(!selector){
			selector = '.iw_templatecontent';
		}
		
		var selectortype = '';
		switch(selector.substr(0, 1)){
			case "#" :
				selectortype = 'id';
			break;
			case "." :
				selectortype = 'class';
			break;
		}
		
		var selector = selector.substr(1);
		win = window.open(window.location.pathname+'?print=1&printview=1&selector='+selector+'&selectortype='+selectortype, 'printwin', 'left=20,top=20,width=800,height=600,scrollbar=1,toolbar=1,resizable=1');						  	
	}
	
	function getPrintViewContent(selector){
		return $(selector+':first').html();
	}
	
		
	$(function(){
		if(request("printview")){
			var selector = request("selector");
			switch(request("selectortype"))
			{
				case "id" :
					selector = '#' + selector;
				break;
				case "class" :
					selector = '.' + selector;
				break;
			}
			$('body').empty().append(window.opener.getPrintViewContent(selector));
		}
	});
	
//----------------------------------------------------------------------------------

	jQuery.fn.carousel = function(opts){          
		var t = this;
		$.getScript('/includes/jquery/jquery.carousel.js', function(){
			t.jQueryCarousel(opts);	
		});
	}

