// JavaScript Document

function externalLinks(){
	var links = $$('a');
	links.each (function(el){
		var rel = el.getProperty('rel');
		if (rel == 'external'){
			el.setProperty ('target', '_blank');
		}
	});
}

function styleswitchers(obj){
	var switchers = $$('#' + obj + ' a');
	switchers.each(function(el){
		el.addEvent('click',function(e){
			var sty = el.getProperty('rel');
			styleswitch ('set', sty);
			var e = new Event (e);
			e.stop();
		});
	});
}
function styleswitch(mode, setstyle){  
	var i, a;  
	var stylepath = './style/';  
	// setting the path to the CSS directory  
	var cookstyle = Cookie.get('Stylesheet');  
	// getting current cookie value for the stylesheet   
	if (cookstyle == false ) {  
		for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {  
			if(a.getAttribute("rel").indexOf('style') != -1  
			&& a.getAttribute("media").indexOf('screen') != -1  
			&& a.getAttribute("title")  
			// find default stylesheet, which is defined in the head section of the document  
			) {  
				cookstyle = a.getAttribute("title");   
				Cookie.set('Stylesheet', cookstyle, {duration:365, path:"/"});  
				//set the default stylesheet as cookie value  
			}  
		}  
	}  
	switch (mode) {  
		case 'set' :  
			new Asset.css(stylepath + setstyle +'.css', {id: setstyle});  
			// loads the new stylesheet  
			Cookie.set('Stylesheet', setstyle, {duration:365, path: "/"});  
			// sets the stylesheet into a cookie value  
			break;  
		case 'noset' :  
			new Asset.css(stylepath + setstyle +'.css', {id: setstyle});  
			// only apply the new stylesheet, without saving it in a cookie value  
			break;  
		default :  
			new Asset.css(stylepath + cookstyle +'.css', {id: cookstyle});  
			// sets the current cookie value as active stylesheet  
			break;  
	}  
	return null;           
}  

// JavaScript Document

function startforms(){
	var forms = $$('form');
	forms.each (function(el){
		el.addEvent('submit', function(e){
			if (!validateForm(el.id)){
				var e = new Event(e);
				e.stop();
			}

		});
	});
	var req_fields = $$('form .req');
	req_fields.each (function(el){
		el.addEvent('blur', function(e){
			Error = verifyField(el.id);
		});
	});
}

function verifyField(id){
	error = '';
	type = '';
	rel_content  = '';
	rel_content = $(id).getProperty('rel');
	if (rel_content){
		if (rel_content.indexOf('email') != -1){
			type = 'email';
		}
	}
	switch (type){
		case 'email':
			var value = $(id).value;
			apos = value.indexOf("@");
			dotpos = value.lastIndexOf(".");
			if (apos<1 || dotpos-apos<2){
				error += rel_content + '\r\n';
			}
			break;
		default:
			var value = $(id).value;
			if (!value){
				if (rel_content){
					error += rel_content + '\r\n';
				} else {
					error = true;
				}
			}
			break;
	}
	var p = $(id).getParent();
	if (error){
		p.addClass ('invalid');
		p.removeClass('valid');
		/*var div = new Element('div');
		div.appendText('Error! Please complete this field!');
		div.injectAfter($(id));*/
	} else {
		p.addClass('valid');
		p.removeClass('invalid');
	}
	return error;
}

function validateForm(id){
	main_error = '';
	firstError = '';
	var fields = $$('form#' + id + ' .req');
	for (a=0; a<fields.length; a++){
		Return = verifyField(fields[a].id)
		if (Return){
			main_error += ' - ' + Return;
			firstError = firstError ? firstError : fields[a].id;
		}
	}
	if (main_error){
		$(firstError).focus();
		main_error = 'Please complete the following required fields:\r\n\r\n' + main_error;
		alert (main_error);
		return false;
	}
	return true;
}

function maps(){
	if ($('gmap')){
		window.addEvent('load',function(){
			load('gmap');
		});	
		window.addEvent('unload',function(){
			GUnload();
		});	
	}
}

function video(){
	if ($('paperworks_movie')){
		$('paperworks_movie').set('styles', {'height': 349, 'margin-bottom': 20});
		var swf = new Swiff('/_lib/video/player.swf', {container: 'paperworks_movie', width: 550, height: 349});
	}
}

window.addEvent('domready', function(){
	externalLinks();
	startforms();
	maps();
	styleswitchers('accessability .styleswitch');
	video();
});
