//Focus 
tabs={
init:function (){
if(!document.getElementById || !document.createTextNode){return;}
tabs.links = $('a[href^=#]');
for(var i=0; i<tabs.links.length; i++){
var location = tabs.links[i].getAttribute('href', 2);
location=location.slice(1,location.length);
if(location != 'top'){
var content = $('div#'+location);
$(tabs.links[i]).click(function(event){
tabs.getContent(event);
});
var listItem=$(tabs.links[i]).parent();
if(i==0){
tabs.currentTabContent=content;				
tabs.currentTab=listItem;
tabs.currentTab.addClass('here');
tabs.currentTabContent.addClass('here');
}//end if
else{
tabs.temp=content;
tabs.temp.addClass('hide');
}//end else
}
}//end for
},
getContent:function(e){
var t=tabs.getTarget(e); 
tabs.showContent(t);
e.preventDefault();
return false;
},
getTarget:function(e){
var target = window.event ? window.event.srcElement : e ? e.target : null;
if (!target){return false;}
while(target.nodeType!=1 && target.nodeName.toLowerCase()!='body'){
target=target.parentNode;
}//end if
return target;
},
showContent:function(t){
var location=t.getAttribute('href',2).replace(/.*#/,'');
for(var i=0;i<tabs.links.length;i++){
if(tabs.links[i].getAttribute('href',2).replace(/.*#/,'')==location){
var listItem=$(tabs.links[i]).parent();
break;
}//end if
}//end for
var content=$('div#'+location);
tabs.currentTabContent.addClass('hide');
tabs.currentTabContent.removeClass('here');
content.removeClass('hide');
tabs.currentTab.removeClass('here');
listItem.addClass('here');
content.addClass('here');
tabs.currentTab=listItem;
tabs.currentTabContent=content;
return false;
}
};
valid={	
//global variable for form errors
errorCount:0,
//initialize function observes all input fields
init:function (){
if(!document.getElementById || !document.createTextNode){return;}
$('input').change(function(event){
valid.testContent(event);
});
},
	
//id is pulled from element, sent to validation
testContent:function(event){
str=$(valid.getTarget(event)).attr('id');
try{
valid.callCakeAjax(str);
}
catch(err){};
},
getTarget:function(e){
var target = window.event ? window.event.srcElement : e ? e.target : null;
if (!target){return false;}
while(target.nodeType!=1 && target.nodeName.toLowerCase()!='body'){
target=target.parentNode;
}//end if
return target;
},	
//element value is extracted and sent to same validation file server-side uses
callCakeAjax:function(str){
var params = str + '=' + $('#'+str).val();
new $.ajax({
url:'/leads/validate_lead',
type:'POST',
data: params,
success: function(something){
var response = something || "Error in field";
valid.isValid(str, response);	
},
error: function(){}
});
},
//test response of ajax call
isValid:function(str, response){
var resptest = response;
resptest = resptest.substr(0,1);
if(resptest != true)
valid.addColor(str, response);
else
valid.removeColor(str);
},	
//adds errors to specific field as well as showing general error messages
addColor:function(str, response){
$('#'+str).parent().addClass('error');
if(valid.errorCount<=0){
var src = $('#submitbutton').attr('src').replace('.jpg','_ovr.jpg');
$('#submitbutton').attr('src',src).disabled=true;
}
$(str).focus(function(event){
$(str).focus(this.select());
});
if($('#'+str).next(0).size()<=0){
valid.createErrorMsg(str, response);}
if(valid.errorCount<=1){
valid.createFormError();}
//match.matchColumns();
},
//removes errors from specific field.  if no other errors present, removes general error messages
removeColor:function(str){
$('#'+str).parent().removeClass('error');
valid.removeErrorMsg(str);
$(str).unbind('focus');
if(valid.errorCount<=0){
var src = $('#submitbutton').attr('src').replace('_ovr.','.');
$('#submitbutton').attr('src',src).disabled=false;
valid.removeFormError();
}
},//end addColor
//creates error message for top and bottom of form
createFormError:function(){
if($('V3Form')){
if($('#topErr').size()<=0){
var topErr = $(document.createElement('h2')).attr('id', 'topErr').addClass('flashMessage').append('There are one or more errors on this page');
$('#V3Form').prev('p').append(topErr);	

var botErr = $(document.createElement('h2')).attr('id', 'botErr').addClass('flashMessage').append('There are one or more errors on this page.');
$('div.submit').prepend(botErr);
}
}//end if V3Form
else if($('V2Form')){
if($('#topErr').size()<=0){
var topErr = $(document.createElement('h2')).attr('id', 'topErr').addClass('flashMessage').append('There are one or more errors on this page');
$('V2Form').prev('p').append(topErr);	
}
}//end if V2Form
},
//removes form error message
removeFormError:function(){
$('#topErr').remove();
$('#botErr').remove();
},
//creates field specific error message
createErrorMsg:function(str, response){
var element = $(document.createElement('div')).addClass('error-message').append(response);
$('#'+str).parent().append(element);
valid.errorCount++;
},
//removes field specific error message
removeErrorMsg:function(str){
$('#'+str).next(0).remove();
valid.errorCount--;
}
}
$(document).ready(function(){
tabs.init();
valid.init();
function setFocus(){
var inputs = $('input');
if(inputs[0]){
for(var i=0;inputs.length;i++){
try{
if($(inputs[i]).attr('type')==='text'){
inputs[i].focus();
break;
}//end if
}//end try
catch(err){
break;
}//end catch
}//end for
}//end if
}//end setFocus
if(!document.getElementById || !document.createTextNode){return;}
setFocus();
});