function trim(str) {
    return str.replace(/^\s+|\s+$/g,"");
}

function changeTextNode(id,msg) {
    if(document.getElementById(id).childNodes[0]) {
	document.getElementById(id).childNodes[0].nodeValue = msg;
    } else {
	var text = document.createTextNode(msg);
	document.getElementById(id).appendChild(text);
	document.getElementById(id).childNodes[0].nodeValue = msg;
    }
}

function checkName(value, img, msg, rootPath) {

    document.getElementById(img).style.visibility = 'visible';

    if(trim(value) == '') {
	document.getElementById(img).src = rootPath+'images/cancel.png';
	changeTextNode(msg,'Obrigatório.');
	return false;
    } else if(value.length < 3) {
	document.getElementById(img).src = rootPath+'images/cancel.png';
	changeTextNode(msg,'Mínimo 3 caracteres.');
	return false;
    } else {
	document.getElementById(img).src = rootPath+'images/accept.png';
	changeTextNode(msg,'');
	return true;
    }
}

function checkEmail(value, img, msg, rootPath) {

    document.getElementById(img).style.visibility = 'visible';

    if(trim(value) == '') {
	document.getElementById(img).src = rootPath+'images/cancel.png';
	changeTextNode(msg,'Obrigatório.');
	return false
    }

    var str = value;
    var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;

    if(filter.test(str)) {
	document.getElementById(img).src = rootPath+'images/accept.png';
	changeTextNode(msg,'');
	return true;
    } else {
	document.getElementById(img).src = rootPath+'images/cancel.png';
	changeTextNode(msg,'Email inválido.');
	return false;
    }
}

function checkPasswd(value, id, flag, img, msg, rootPath) {

    document.getElementById(img).style.visibility = 'visible';

    if(trim(value) == '') {

	document.getElementById(img).src = rootPath+'images/cancel.png';
	changeTextNode(msg,'Obrigatório.');
	return false;

    }


    if(flag == 0) {

	if(value.length < 6) {
	    document.getElementById(img).src = rootPath+'images/cancel.png';
	    changeTextNode(msg,'Mínimo de 6 dígitos.');
	    return false;
	} else {

	    if(document.getElementById(id+'2').value == '' || document.getElementById(id+'2').value == value) {
		document.getElementById(img).src = rootPath+'images/accept.png';
		changeTextNode(msg,'');
		return true;
	    } else {
		document.getElementById(img).src = rootPath+'images/cancel.png';
		changeTextNode(msg,'As senhas estão diferentes.');
		return false;
	    }
	}

    } else {

	if(document.getElementById(id).value != value) {
	    document.getElementById(img).src = rootPath+'images/cancel.png';
	    changeTextNode(msg,'As senhas estão diferentes.');
	    return false;
	} else {
	    document.getElementById(img).src = rootPath+'images/accept.png';
	    changeTextNode(msg,'');
	    return true;
	}

    }


}

function checkIdentification(value,country,img, msg, rootPath) {

    document.getElementById(img).style.visibility = 'visible';

    if(trim(value) == '') {
	document.getElementById(img).src = rootPath+'images/cancel.png';
	changeTextNode(msg,'Obrigatório.');
	return false;
    } else if(isNaN(value)) {
	document.getElementById(img).src = rootPath+'images/cancel.png';
	changeTextNode(msg,'Apenas números.');
	return false;
    } else {
	//33 = Brasil
	if(country == '33') {

	    if(!checkCpf(value)) {
		document.getElementById(img).src = rootPath+'images/cancel.png';
		changeTextNode(msg,'CPF inválido.');
		return false;
	    } else {
		document.getElementById(img).src = rootPath+'images/accept.png';
		changeTextNode(msg,'');
		return true;
	    }

	} else {
	    document.getElementById(img).src = rootPath+'images/accept.png';
	    changeTextNode(msg,'');
	    return true;
	}

    }
}

function checkField(value, img, msg, rootPath) {
    document.getElementById(img).style.visibility = 'visible';
    if(value == '') {
	document.getElementById(img).src = rootPath+'images/cancel.png';
	changeTextNode(msg,'Obrigatório.');
	return false;
    } else {
	document.getElementById(img).src = rootPath+'images/accept.png';
	changeTextNode(msg,'');
	return true;
    }
}

function checkOption(options, name, img, msg, rootPath) {

    document.getElementById(img).style.visibility = 'visible';
    checked = false;
    for(i = 0; i < options.length; i++) {
	if(options[i].name == name && options[i].checked) {
	    checked = true;
	    break;
	}
    }

    if(!checked) {
	document.getElementById(img).src = rootPath+'images/cancel.png';
	changeTextNode(msg,'Obrigatório.');
	return false;
    } else {
	document.getElementById(img).src = rootPath+'images/accept.png';
	changeTextNode(msg,'');
	return true;
    }
}

function checkDate(day, month, year, img, msg, rootPath) {

    day = document.getElementById(day);
    month = document.getElementById(month);
    year = document.getElementById(year);

    document.getElementById(img).style.visibility = 'visible';
    if((isNaN(day.value) || isNaN(month.value) || isNaN(year.value)) || (trim(day.value) == '' || trim(month.value) == '' || trim(year.value) == '')) {
	document.getElementById(img).src = rootPath+'images/cancel.png';
	changeTextNode(msg,'Data no formato dd/mm/yyyy.');
	return false;
    } else {
	document.getElementById(img).src = rootPath+'images/accept.png';
	changeTextNode(msg,'');
	return true;
    }
}

function checkUrl(value, img, msg, rootPath) {
    document.getElementById(img).style.visibility = 'visible';
    var reg = /http:\/\/www\.youtube[^"]+/;
    if(!reg.test(value)) {
	document.getElementById(img).src = rootPath+'images/cancel.png';
	changeTextNode(msg,'Endereço inválido.');
	return false;
    } else {
	document.getElementById(img).src = rootPath+'images/accept.png';
	changeTextNode(msg,'');
	return true;
    }
}

function checkCpf(value) { 

    var i;

    s = value;

    var c = s.substr(0,9);
    var dv = s.substr(9,2);
    var d1 = 0;

    for (i = 0; i < 9; i++) {
	d1 += c.charAt(i)*(10-i);
    }

    if (d1 == 0) {
	return false;
    }

    d1 = 11 - (d1 % 11);

    if (d1 > 9)
	d1 = 0;

    if (dv.charAt(0) != d1) {
	return false;
    }

    d1 *= 2;

    for (i = 0; i < 9; i++) {
	d1 += c.charAt(i)*(11-i);
    }

    d1 = 11 - (d1 % 11);

    if (d1 > 9)
	d1 = 0;

    if (dv.charAt(1) != d1) {
	return false;
    }

    return true;

}

function changeVideos(value) {

    //0 = Miniatura
    //1 = Lista
    var i = 0;

    if(value == 1) {

	while(document.getElementById('video' + i)) {
	    document.getElementById('div_video' + i).removeChild(document.getElementById('video' + i));
	    i++;
	}

    } else {

	while(document.getElementById('div_video' + i)) {

	    if(navigator.appName != 'Microsoft Internet Explorer') {
		var obj = document.createElement('object');
		obj.id		= 'video' + i;
		obj.type		= 'application/x-shockwave-flash';
		obj.style.width	= '210px';
		obj.style.height	= '175px';
		obj.data		='http://www.youtube.com/v/' + document.getElementById('video_url' + i).value;

		par1 = document.createElement('param');
		par1.name	= 'movie';
		par1.value	= 'http://www.youtube.com/v/' + document.getElementById('video_url' + i).value;

		par2 = document.createElement('param');
		par2.name	= 'movie';
		par2.value	= 'transparent';

		obj.appendChild(par1);
		obj.appendChild(par2);
		document.getElementById('div_video' + i).appendChild(obj);
	    } else {
		var html = '<object id="video'+ i +'" type="application/x-shockwave-flash" style="width:210px;height:175px;" data="http://www.youtube.com/v/'+ document.getElementById('video_url' + i).value +'"><param name="movie" value="http://www.youtube.com/v/'+ document.getElementById('video_url' + i).value +'" /><param name="wmode" value="transparent" /></object>';
		document.getElementById('div_video' + i).innerHTML += html;
	    }
	    i++;
	}

    }

}

