var http_root = 'http://j1jobs.taxback.ess.ie/';
window.onload=function(){
    var elemViewResponce;
    elemViewResponce = document.getElementById('view_responses');
    if(elemViewResponce) {
		
        addEvent(elemViewResponce, 'click', popitup);
    }
    var formRegister = document.getElementsByName('register');    
    if(formRegister[0]) {
        addEvent(formRegister[0], 'submit', validate);
    }	
}
function validate(evt) {
	validateUSAState(evt);
	validateTextArea(evt);
}
function validateUSAState(evt) {
    
    var workingCountry = document.getElementsByName('work_abroad_before');
	var workingState = document.getElementsByName('state_select');
	
    if(workingCountry[0] && workingState[0]) {
        if(workingCountry[0].value == '221' && workingState[0].value == '' ) {
            alert('Enter state where you have worked before!');
			prevDefault(evt);
        } 
    }
}
function validateTextArea(evt) {    
    var elemRefName = document.getElementsByName('RefInfo');
    var elemPrevJobsInfo = document.getElementsByName('PrevJobsInfo');
    if(elemRefName[0] && elemPrevJobsInfo[0]) {
        var lenRefName = elemRefName[0].value.length;
        var lenPrevJosbsInfo = elemPrevJobsInfo[0].value.length;
        if(lenRefName < 40 || lenPrevJosbsInfo < 10) {
            prevDefault(evt);
            alert('Too short data entered in Course of Study or Work Experience fields!');
        }
    }
}
function prevDefault(evt){
    if(evt.preventDefault) {
        evt.preventDefault();
    } else {
        evt.returnValue = false;
    }
}
function popitup(evt) {
    prevDefault(evt);	
    var url = 'http://j1jobs.taxback.ess.ie/standart_responses.asp';	
    newwindow = window.open(url,'J1Jobs','height=1024,width=790,scrollbars=yes');
    if (window.focus) {
        newwindow.focus()
    }
	
    return false;
}

document.getElementsByClassName = function(clsName){
    var retVal = new Array();
    var elements = document.getElementsByTagName('*');
    for(var i = 0;i < elements.length;i++){
        if(elements[i].className.indexOf(' ') >= 0){
            var classes = elements[i].className.split(' ');
            for(var j = 0;j < classes.length;j++){
                if(classes[j] == clsName)
                    retVal.push(elements[i]);
            }
        }
        else if(elements[i].className == clsName)
            retVal.push(elements[i]);
    }
    return retVal;
}
function addEvent( obj, type, fn ) {
    if (obj.addEventListener) {
        obj.addEventListener( type, fn, false );
        EventCache.add(obj, type, fn);
    }
    else if (obj.attachEvent) {
        obj['e' + type+fn] = fn;
        obj[type + fn] = function() {
            obj['e' + type + fn]( window.event );
        }
        obj.attachEvent( 'on' + type, obj[type + fn] );
        EventCache.add(obj, type, fn);
    }
    else {
        obj['on' + type] = obj['e' + type + fn];
    }
}
var EventCache = function(){
    var listEvents = [];
    return {
        listEvents : listEvents,
        add : function(node, sEventName, fHandler){
            listEvents.push(arguments);
        },
        flush : function(){
            var i, item;
            for(i = listEvents.length - 1; i >= 0; i = i - 1){
                item = listEvents[i];
                if(item[0].removeEventListener){
                    item[0].removeEventListener(item[1], item[2], item[3]);
                };
                if(item[1].substring(0, 2) != 'on'){
                    item[1] = 'on' + item[1];
                };
                if(item[0].detachEvent){
                    item[0].detachEvent(item[1], item[2]);
                };
                item[0][item[1]] = null;
            };
        }
    };
}();
//checks if class exists
function checkForClass(element,className){
    if(element.className.indexOf(className) != -1){
        return true;
    }
    return false;
}
function addClass(element, nameOfClass){
    if (typeof element == 'string') {
        element = document.getElementById(element);
    }
    if (!checkForClass(element, nameOfClass)) {
        element.className += (element.className ? ' ' : '') + nameOfClass;
    }
}

//removes a class
function removeClass(element, nameOfClass){
    if (typeof element == 'string') {
        element = document.getElementById(element);
    }
    if (checkForClass(element, nameOfClass)) {
        element.className = element.className.replace(
            (element.className.indexOf(' ' + nameOfClass) >= 0 ? ' ' + nameOfClass : nameOfClass),'');
    }
}
