/*Test for Background Clip*/
Modernizr.addTest('backgroundclip',function(){
	return document.createElement('div').style.backgroundClip === '' || document.createElement('div').style.MozBackgroundClip === '' || document.createElement('div').style.webkitBackgroundClip === '';
});
/*Test for display:table*/
Modernizr.addTest('displaytable',function(){
	var telement = document.createElement('div');
	var recognizes = true;
	try{
		telement.style.display = 'table';
	}catch(e){
		recognizes = false;
	}
	return telement.style.display === 'table' && recognizes;
});

$(document).ready(function(){	
	if (!Modernizr.rgba || !Modernizr.backgroundclip){
		$('.module').wrap('<div class="module-wrap"></div>');
	}
	if (!Modernizr.displaytable && $('#subnav').length){
		$('#main').wrapInner('<div id="main-wrap"><div id="main-left"></div></div>');
	}
	/**********************************************Flashmap****************************************************/
	if ($('#flashmap').length){		
		var params = {
			bgcolor:'none',
			wmode:'transparent',
			quality:'high',			
			allowscriptaccess:'sameDomain',			
			scale:'showall'
		};
		var flashvars = {};
		/*570x380 = ratio 1.5*/
		swfobject.embedSWF(getPath()+'flash/ANT375__Map.swf', 'flashmap', '570', '380', '9', false, flashvars, params, {align:'middle'});		
	}
	/**********************************************Modules*****************************************************/
	if($('#quicklinks').length){
		quicklinks();
	}
	if($('#stock').length){
		stock();
	}
	if($('#latestnews').length){
		latestnews();
	}
	/**********************************************Reports and News********************************************/
	$('.accordion').accordion({
		header:'dt',
		autoHeight:false
	});	
	/**********************************************Contact*****************************************************/
	$('input, textarea').each(defaultInput);
	$('input, textarea').focus(focusInput);
	$('input, textarea').blur(blurInput);
	$('#contactform').submit(submitContact);
	/**********************************************Quick Reports***********************************************/
	$('#quick-report').submit(doQuickReport);
	$('#print-report').click(printQuickReport);
	/**********************************************Admin******************************************************/
	$('.dialog').dialog({
		autoOpen:false,
		modal:true,
		width:500
	});	
	$('#add-quicklink').click(editQuicklinks);
	$('#quicklink-dialog form').submit(saveQuicklinks);
	$('.open-filefolder').click(function(){		
		tinyBrowserPopUp('file',$(this).siblings('.file-field').attr('name'));
		return false;
	});
	$('#page-delete').click(function(){
		return confirm('Are You Sure You Want to Delete This Page?');
	});
	$('.delete-report').click(function(){
		return confirm('Are You Sure You Want to Delete This Report?');
	});
	$('#edit-banner').change(changeBanner);
	$('#upload-banner').change(addBanner);
	if ($('#edit-report-date').length){
		$('.edit-report').click(editReport);
		$('#cancel-button').click(cancelReport);
		$('#add-report').click(addReport);
		$('#edit-report-date').datepicker({
			dateFormat:'yy-mm-dd'
		});
		$('#save-button').click(saveReport);
	}
	
});
/*Gets the quicklinks*/
function quicklinks(){	
	var remote = (location.pathname.toLowerCase().indexOf('news.') != -1 ? true:false);	
	$.ajax({
		url:(remote ? 'http://antrim.redlabelproofing.com/':getPath())+'get_quicklinks.php', //use: 'http://www.antrimenergy.com/' later
		data:(remote ? 'remote=1':''),
		dataType:(remote ? 'jsonp':'json'),
		type:'GET',
		beforeSend:function(){$('#quicklinks h3').after('<div class="loader">Loading...</div>');},
		error : function(xhr, errorcode, error){
			$('#quicklinks').html(errorcode+': '+error);
		},
		success:function(data){			
			$('#quicklinks .loader').remove();
			$('#quicklinks h3').after('<ul></ul>');
			var adminlinks = ($('#quicklinks .edit-actions').length ? true:false);
			for(var i in data){					
				var link = '<li><a href="'+data[i].filename+'" target="_blank">'+data[i].name+'</a>';
				if (adminlinks){
					link += '<strong class="edit-links">[<a href="#" class="edit-button" id="edit-quicklink'+data[i].id+'">Edit</a>][<a href="'+getPath()+
					'delete_quicklinks.php?id='+data[i].id+'&amp;file='+location.pathname+'" class="delete-button">Delete</a>]</strong>';
				}
				link += '</li>';
				$('#quicklinks ul').append(link);				
			}
			if (adminlinks){
				$('#quicklinks .delete-button').click(deleteQuicklinks);
				$('#quicklinks .edit-button').click(editQuicklinks);
			}
		}
	});
}
/*Edit/Add Quicklinks*/
function editQuicklinks(){
	$('#quicklink-dialog').dialog('open');
	if ($(this).hasClass('edit-button')){
		$('#quicklink-dialog').dialog('option','title','Edit Quick Link');
		var id = $(this).attr('id').replace('edit-quicklink','');
		var title = $(this).parents('li').find('a').html().replace('&amp;','&');
		var file = $(this).parents('li').find('a').attr('href');
		$('#quicklink-id').val(id);
		$('#quicklink-title').val(title);
		$('#quicklink-file').val(file);
	}else{
		$('#quicklink-dialog').dialog('option','title','Add Quick Link');
		$('#quicklink-id').val('new');
		$('#quicklink-title').val('');
		$('#quicklink-file').val('');
	}
	return false;
}
function deleteQuicklinks(){
	return confirm('Are You Sure You Want to Delete This Quicklink?');
}
function saveQuicklinks(){
	$(this).find('error').removeClass('error');
	var pass = true;
	if ($('#quicklink-title').val() == ''){
		pass = false;
		$('#quicklink-title').addClass('error');
	}
	return pass;
}
/*Gets stock info*/
function stock(){
	var markets = [];
	var symbols = [];
	var remote = (location.pathname.toLowerCase().indexOf('news.') != -1 ? true:false);	
	$('#stock .info').each(function(){
		markets.push($(this).attr('id'));
		symbols.push($(this).find('input').val());
	});		
	$.ajax({
		url:(remote ? 'http://antrim.redlabelproofing.com/':getPath())+'get_stocks.php', //use: 'http://www.antrimenergy.com/' later
		data:{
			s:symbols.join(','), 
			m:markets.join(','),
			remote:remote
		},
		type:'GET',
		dataType:(remote ? 'jsonp':'json'),	
		beforeSend:function(){
			$('#last-update').html('Loading...');
		},
		success:function(data){			
			lastupdates = [];
			for(var i in data){
				var id = '#'+data[i].market;					
				$(id+' .value').html(data[i].value);
				var direction = (Number(data[i].change) >= 0 ? 'up':'down');
				$(id+' .change').html(data[i].change).addClass(direction);
				$(id).attr('title',data[i].lastupdate);
				lastupdates.push(getDateFromStock(data[i].lastupdate));				
			}			
			$('#last-update').html(getLatestDate(lastupdates));
		}
	});
}
//load latest news into module
function latestnews(){
	$.ajax({
		url:getPath()+'get_news.php',
		type:'GET',
		dataType:'json',
		beforeSend:function(){
			$('#latestnews h3').after('<div class="loader">Loading...</div>');
		},
		success:function(data){
			if (data == null){
				return;
			}				
			$('#latestnews .loader').remove();
			$('#latestnews ul').html('');
			if (data.error != null){
				$('#latestnews ul').append('<li>'+data.error+'</li>');
			}else{
				for(var n in data.articles){
					var article = '<li><strong>'+data.articles[n].date+'</strong>'
						+'<a href="'+data.articles[n].url+'">'+data.articles[n].title+'</a></li>';
					$('#latestnews ul').append(article);
				}
			}
		}
	});
}
/*Gets the latest date*/
function getLatestDate(dates){
	var max = dates[0];
	for(var i in dates){
		//alert(dates[i]);
		max = (max < dates[i] ? dates[i]:max);		
	}	
	if (max !== undefined){
		var datepart = (max.getUTCMonth()+1)+'/'+max.getUTCDate()+'/'+max.getUTCFullYear();	
		var meridian = (max.getUTCHours() < 12 ? 'am':'pm');
		var hour = (meridian == 'pm' ? max.getUTCHours()-12:max.getUTCHours());
		hour = (max.getUTCHours() == 0 ? 12:hour);
		var timepart = hour+':'+(max.getUTCMinutes() < 10 ? '0':'')+max.getUTCMinutes()+meridian+' UTC';
		return datepart+' '+timepart;
	}else{
		return '';
	}
}
/*Gets javascript date object from stock lastupdate*/
function getDateFromStock(date){
	var parts = date.split(' ');

	//do date part
	var d = parts[0];
	var dparts = d.split('/');
	//m/d/Y
	var year = dparts[2];
	var month = Number(dparts[0])-1;
	var day = dparts[1];
	//do time part
	var t = parts[1];
	var tparts = t.split(':');
	var add = (tparts[1].indexOf('am') != -1 ? 0:12);
	var hour = Number(tparts[0])-1+add;
	var minute = tparts[1].replace(/am|pm/,'');
	
	return new Date(year,month,day,hour,minute);
}
//set input defaults
function defaultInput(){
	if ($(this).attr('title') != '' && ($(this).val() == '' || $(this).val() == $(this).attr('title'))){
		$(this).val($(this).attr('title'));
		$(this).addClass('default');
	}
}
//focus on input box
function focusInput(){
	$(this).removeClass('default');
	if ($(this).attr('title') != ''){
		if ($(this).val() == $(this).attr('title')){
			$(this).val('');
		}
	}
}
//blur on input box
function blurInput(){
	if ($(this).val() == '' && $(this).attr('title') != ''){
		$(this).addClass('default');
		$(this).val($(this).attr('title'));
	}
}
//Contact Form submitted
function submitContact(){
	var name = $('#contactname').val();
	var email = $('#contactemail').val();
	var valid = true;
	var message = '';
	$('input').removeClass('error');
	
	if (name == '' || name == $('#contactname').attr('title')){
		valid = false;
		message += 'Your name is required!<br />';
		$('#contactname').addClass('error');
	}
	if(email == '' || email == $('#contactemail').attr('title')){
		valid = false;
		message += 'Your email id required!<br />';
		$('#contactemail').addClass('error');
	}
	if(!validateEmail(email)){
		valid = false;
		message += 'A valid email is required<br />';
		$('#contactemail').addClass('error');
	}
	$('#validators').html(message);
	return valid;
}
//validates an email using unicode characters
function validateEmail(email){
	var emailreg = /^((([a-zA-Z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-zA-Z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/; 
	if (!emailreg.exec(email))
		return false;
	else
		return true;
}
//Changes a banner
function changeBanner(){
	if (!$('#banner').length){		
		$('#header').after('<img id="banner" src="" alt="banner" />');
	}
	if ($(this).val() != ''){
		$('#banner').show();
		$('#banner').attr('src',getPath() + $(this).val());
	}else{
		$('#banner').hide();
	}
}
//Adds a banner
function addBanner(){
	$('#edit-banner').append('<option value="new">New Banner</option>');
	$('#edit-banner').val('new');
}
//Edit an investor report
function editReport(){
	var id = $(this).attr('id').replace('edit','');
	var rowid = '#report'+id;
	var report = {
		id:id,
		title:{id:rowid+' td:eq(0)'},
		filename:{id:rowid+' td:eq(1)'},
		date:{id:rowid+' td:eq(2)'},			
		actions:{id:rowid+' td:eq(3)'}
	};	 
	report.title.val = $(report.title.id+' span').html().replace('&amp;','&');
	report.filename.val = $(report.filename.id+' span').html();
	report.date.val = $(report.date.id+' span').html();
	report.actions.buttons =  report.actions.id+' .report-action';
	
	$('#reports-form .error').removeClass('error');
	$('.edit-table span, .edit-table .report-action').show();	
	$('#edit-report-id').val(id);
	$(rowid+' span, #newreport').hide();
	$('#edit-report-title').val(report.title.val).appendTo(report.title.id);
	$('#edit-report-file').val(report.filename.val).appendTo(report.filename.id);
	$('#open-report-folder').appendTo(report.filename.id);
	$('#edit-report-date').val(report.date.val).appendTo(report.date.id);
	$('#save-button, #cancel-button').appendTo(report.actions.id);	
	$(report.actions.buttons).hide();	
	return false;
}
//Add an investor report
function addReport(){
	var id = $(this).attr('id').replace('edit','');
	var rowid = '#newreport';
	if (!$(rowid).length){
		var row = '<tbody><tr id="newreport" class="new"><td></td><td></td><td></td><td></td></tr></tbody>';
		$('.edit-table tbody').before(row);
	}else{
		$(rowid).show();
	}
	var report = {
		id:'new',
		title:{id:rowid+' td:eq(0)'},
		filename:{id:rowid+' td:eq(1)'},
		date:{id:rowid+' td:eq(2)'},			
		actions:{id:rowid+' td:eq(3)'}
	};	 
	report.actions.buttons =  report.actions.id+' .report-action';
	
	$('#reports-form .error').removeClass('error');
	$('.edit-table span, .edit-table .report-action').show();
	$('#edit-report-id').val(report.id);
	$(rowid+' span').hide();
	$('#edit-report-title').val('').appendTo(report.title.id);
	$('#edit-report-file').val('').appendTo(report.filename.id);
	$('#open-report-folder').appendTo(report.filename.id);
	$('#edit-report-date').val('').appendTo(report.date.id);
	$('#save-button, #cancel-button').appendTo(report.actions.id);	
	$(report.actions.buttons).hide();	
	return false;
}
function cancelReport(){
	$('.edit-table span, .edit-table .report-action').show();
	$('#newreport').hide();
	$('.edit-table input:text, .edit-report-button').appendTo('#report-edit-fields');
	return false;
}
function saveReport(){
	$('#reports-form .error').removeClass('error');
	var pass = true;
	if ($('#edit-report-title').val() == ''){
		pass = false;
		$('#edit-report-title').addClass('error');		
	}
	if ($('#edit-report-date').val() == ''){
		pass = false;
		$('#edit-report-date').addClass('error');
	}
	if (pass){
		$('#reports-form').submit();
	}
	return false;
}
//shows a quick report
function doQuickReport(){
	$.ajax({
		url:$(this).attr('action'),
		data:$(this).serialize(),
		dataType:'html',
		type:'POST',
		beforeSend:function(){
			$('#quick-report-results').show();
			$('#quick-report-results').html('<div class="loader">Loading...</div>');
		},
		success:function(data){
			$('#quick-report-results').html(data);
		}
	});
	return false;
}
//makes a quick report print friendly
function printQuickReport(){
	var query = $('#quick-report').serialize()+'&print=1';
	var printwindow = window.open('','printwindow','width=800,height=600,scrollbars=yes,status=no,toolbar=no,location=no,menubar=no');
	printwindow.location = 'print_report.php?' + query;
}
//gets the path
function getPath(){
	var base = location.protocol+'//'+location.hostname;
	var path = location.pathname.split('/');	
	if (location.hostname == 'localhost'){
		var filepath = (path.length < 3 ? base+'/':base+'/'+path[1]+'/');
	}else{
		var filepath = (path.length <= 3 ? base+'/':base+'/'+path[0]+'/');
	}
	return filepath;
}
