/**
 * @author gharbusch
 */

// *** Contains localizations

var localization;
var sliderSections =
	{
		'Laboratorium' 			: 1, 
		'Pruefungen' 			: 2, 
		'Qualitaetssicherung'	: 3, 
		'Kundenservice'			: 4 	
	};
	
/**
 * Add a Validator Method for Validating Checkbox Arrays
 */
$.validator.addMethod("cb_selectone", function(value, element, param) 
{
	name = $(element).attr('name');

	if ($("input[name='"+name+"']:checked").size() > 0)
	{
		result = true;
	} 
	else
	{
		result = false;
	}
	toggleCheckboxErrors(name,result);
	return result;
}, 'Please select at least one');


/**
 * Start the stuff
 */
$(document).ready(function() {
		
	// *** Open external Links in new Window (target-Attr. not allowed in XHTML Strict) 
	$('a.CTL_extLink').attr('target', '_blank');
	
	// *** Get Localization
	getLocalization(lang);

	// *** Get the Skype Status
	/*
	var skypeName = 'ctl_sekretariat';
	getSkypeStatus(skypeName);
	*/
	
	// *** Initialize JS-Validation of Order Catalogue Form
	if ($('#CTL_orderCatalogue').size() > 0) {
		initOrderCatalogueValidation();
	}
	
	// *** Fixes for Browsers
	initBrowserFixes();

	initSlider();
});

function initSlider()
{
	try {
		
		// *** Get current URL
		var current_url = window.location.pathname;
		var path_array = current_url.split('/');
		var current_section_name = path_array[1];
		var current_section_id = false;
		
		if (current_section_name != '')
		{
			current_section_id = sliderSections[current_section_name] - 1;
		}
		
		// *** Slider-Navigation
		$('#CTL_sliderFrames').cycle({
			speed: 1000,
			timeout: 6000,
			pause: 1,
			fx: 'scrollRight',
			startingSlide: current_section_id || 0,
			after: function() 
			{
				splitValues = $(this).attr('id').split('_');
				teaser = splitValues[2];
				$('#CTL_sliderNavi li, #CTL_sliderDots li').removeClass('active');
				$('#CTL_sliderNavi_'+teaser+', #CTL_sliderDot_'+teaser).addClass('active');
			}
		});
		
		// *** Fixed frames for Laboratorium, Prüfungen, Qualitätssicherung and Kundenservice
		if (current_section_id !== false)
		{
			$('#CTL_sliderFrames').cycle('stop');
		}
		else
		{
			$('.CTL_sliderFrame').hover(
			function () {
				$('#CTL_sliderPause').show();
			},
			function () {
				$('#CTL_sliderPause').hide();
			});
		}
	} catch(e) {}
}

/**
 * Get Localization from PHP
 * 
 * @param language
 * @return
 */
function getLocalization(language)
{
	var lang = language || 'en';
	
	$.ajax( {
		url : '/inc/localization.inc.php',
		data : {
			getJson : true,
			lang 	: lang
		},
		dataType: 'json',
		success : function(data,status,xhr) {
			localization = data;
		}
	});
}

/**
 * Get the Skype status of user with skypename 'sn'
 * 
 * @param {String} sn
 * 
 */

function getSkypeStatus(sn) {
	var skypeName = sn || '';

	$.ajax( {
		url : '/inc/getSkypeStatus.php',
		data : {
			sn : skypeName
		},
		success : function(status) {
			if (status == '') {
				status = 'Offline';
			}
			$('span#CTL_skypeStatus').removeClass().addClass(
					'CTL_skype' + status).attr('title', sn + ': ' + status);
		}
	});
}

/**
 * Initialize Validation on Order Catalogue Form
 * 
 * @return
 */
function initOrderCatalogueValidation()
{
    $('#CTL_orderCatalogue').validate( {
		rules : {
			CTL_inputNameFirst 			: 'required',
			CTL_inputNameLast 			: 'required',
			CTL_inputStreetNumber 	: 'required',
			CTL_inputPostcode 			: 'required',
			CTL_inputCity 					: 'required',
			CTL_inputCountry 				: 'required',
			CTL_inputEmail 					: {
				email : true,
				required : true
			},
			'CTL_catalogueArray[]'	: "cb_selectone",
			'CTL_mediaFormArray[]'	: "cb_selectone"
		},
		messages : {
		},
		errorClass : 'CTL_invalid',
		validClass : 'CTL_valid',
		errorPlacement : function(error, element) {
			if (element.is(':checkbox'))
			{
			}
		}
	});

}

/**
 * Show or hide Errorboxes for Checkbox Arrays
 * 
 * @param {Object} name
 * @param {Object} result
 */
function toggleCheckboxErrors(name, result) 
{

	switch (name)
	{
		case 'CTL_catalogueArray[]' :
			// *** Check, if at least one catalogue is selected
			if(!result)
			{
				$('#CTL_formCatalogueRequired div.CTL_formValidationMessage').html(localization.err_select_catalogue).show();
			}
			else
			{
				$('#CTL_formCatalogueRequired div.CTL_formValidationMessage').text('').hide();
				$('#CTL_formCatalogueRequired input').removeClass('CTL_invalid');
			}
		break;
		
		case 'CTL_mediaFormArray[]' : 
			if(!result)
			{
				$('#CTL_formMediaForm div.CTL_formValidationMessage').text(localization.err_select_mediaform).show();
			}
			else
			{
				$('#CTL_formMediaForm div.CTL_formValidationMessage').text('').hide();
				$('#CTL_formMediaForm input').removeClass('CTL_invalid');
			}
		break;
	}
}

function initBrowserFixes() 
{
	if ($.browser.msie)
	{
			switch ($.browser.version)
			{
				case '6.0' :
					$('#CTL_headNavi ul li:first-child').css('background','none');
				break; 
			}
	}
}

